人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ワードプレスのショートコードについて質問させてください。
前回、
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');

●質問者: ak
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sasada
ベストアンサー

何がいけないのでしょうね。ひとまず、

$cat_id = ""; // 宣言と初期化
$categories = get_the_category(); //初期化の外出し
foreach($categories as $cat) {
 $cat_id = $cat->cat_ID ;
 break ;
}

とかでしょうか。


akさんのコメント
変数に$をつけたところエラーになりませんでした。 ところが、HTMLはきちんと表示されたのですが、URLとタイトルだけ外に飛びでてしまいました。 URL/タイトル <font color="#000000" size="4"><strong>【関連記事】</strong></font><ul class="aaa"><li><a href=""></a></li><li><a href=""></a></li><li><a href=""></a></li><li><a href=""></a></li></ul>

akさんのコメント
コードがはれないのですが、 ulなどのソースはきちんと表示されています。

2 ● fiwa

できるだけ変更せずに書き換えてみました。
書き換えたのは次の部分です。

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');

akさんのコメント
コード書き換え誠にありがとうございます。 コピぺしたところエラーが表示されてしまいました涙

fiwaさんのコメント
すいません、余計な制御文字が紛れ込んでいたようです。 再編集してみましたので、再度試してみて下さい。 というか、要するに変数にきちんと$を付けて別の関数を試してみて、ということなんですけど。

akさんのコメント
大変お手数おかけし申し訳ございません。 変数の件承知いたしました。

質問者から

皆様コメント誠にありがとうございます。
>PHPの変数は「$xxx」で「$」から始まりますね・・・
た、たしかに。。汗
思い込みは怖いですねw気が付きませんでした・・
試しています。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ