ローカルとグローバルを意識しよう

「以前の投稿」で紹介しましたが、当サイトでは独自のパンくずリストにしていたのですが、WordPressを3.5にアップデートしたところエラーが発生。
現在のページの親ページ(先祖)のIDを取得する「get_post_ancestors()」が原因でエラーが出ていました。
エラーメッセージと対処法
Warning: array_reverse() expects parameter 1 to be array, boolean given in
調べると、どうやら正しくは「global $post;」でグローバル変数を取得しないといけなかったようです。(3.5以前のバージョンでは書かなくても取得できていました)
以下のコードに変更したところ、無事に出力されるようになりました。急にエラーが出て困っている方は試してみてください。
function the_breadcrumb() {
if (!is_home()) {
echo '<a href="'.home_url().'">Home</a>';
}
if (is_category() || is_single() || is_archive() ) {
echo " > [";
the_taxonomies(", ");
echo "]";
}
if (is_single()) {
echo " > ";
echo '現在のページ';
} elseif (is_page()) {
echo ' > ';
global $post; //ここに追加
$ancestors = get_post_ancestors($post->ID);
foreach (array_reverse($ancestors) as $parid) {
$title = get_page($parid)->post_title;
echo '<a href="'.get_page_link($parid).'" title="'.$title.'">'.$title.'</a> > ';
}
echo '現在のページ';
}
}
functionsを使ってパンくずリストに複数のカテゴリを加える方法
もう覚えなくても大丈夫!?WordPressの条件分岐タグの使い方まとめ
貼るだけ簡単!アクセスが倍増するWordPress用OGPコード
Popular Postsをカスタマイズして、人気記事のサムネイルを表示する方法
WordPressでコメント機能を投稿タイプや時間経過と共に停止する方法
WordPressの新・旧ループからカスタムクエリ・アーカイブまで徹底解説








