前回、
http://q.hatena.ne.jp/1400309518
の記事より解答者様より素晴らしいコードを書いていただきました。
さぁいざ実装としてみると
Parse error: syntax error, unexpected '=' in /home/****************functions.php on line 5
が表示されてしまいます。
私も多少PHPに知識があるので何度見ても、いろいろ試してもだめでした。
どなたかアドバイスいただけないでしょうか?
【コード】
function hogeFunc() {
rtnVal = '';
rtnVal .= '<font color="#000000" size="4"><strong>【関連記事】</strong></font>';
rtnVal .= '<ul class="aaa">';
foreach((get_the_category()) as $cat) {
$cat_id = $cat->cat_ID ;
break ;
}
$query = 'cat=' . $cat_id . '&showposts=4';
query_posts($query) ;
if ( have_posts() ) : while ( have_posts() ) : the_post();
rtnVal .= '<li><a href="' . the_permalink() . '">' . the_title() . '</a></li>';
endwhile; endif;
rtnVal .= '</ul>';
wp_reset_query();
return rtnVal;
}
add_shortcode('hoge', 'hogeFunc');
何がいけないのでしょうね。ひとまず、
$cat_id = ""; // 宣言と初期化 $categories = get_the_category(); //初期化の外出し foreach($categories as $cat) { $cat_id = $cat->cat_ID ; break ; }
とかでしょうか。
できるだけ変更せずに書き換えてみました。
書き換えたのは次の部分です。
function hogeFunc() { $rtnVal = ''; $rtnVal .= '<font color="#000000" size="4"><strong>【関連記事】</strong></font>'; $rtnVal .= '<ul class="aaa">'; foreach((get_the_category()) as $cat) { $cat_id = $cat->cat_ID ; break ; } $query = 'cat=' . $cat_id . '&showposts=4'; query_posts($query) ; if ( have_posts() ) : while ( have_posts() ) : the_post(); $rtnVal .= '<li><a href="' . get_the_permalink() . '">' . get_the_title() . '</a></li>'; endwhile; endif; $rtnVal .= '</ul>'; wp_reset_query(); return $rtnVal; } add_shortcode('hoge', 'hogeFunc');
すいません、余計な制御文字が紛れ込んでいたようです。
再編集してみましたので、再度試してみて下さい。
というか、要するに変数にきちんと$を付けて別の関数を試してみて、ということなんですけど。
大変お手数おかけし申し訳ございません。
変数の件承知いたしました。
変数に$をつけたところエラーになりませんでした。
ところが、HTMLはきちんと表示されたのですが、URLとタイトルだけ外に飛びでてしまいました。
URL/タイトル
【関連記事】
2014/05/23 17:37:51コードがはれないのですが、
2014/05/23 17:40:12ulなどのソースはきちんと表示されています。