ローカルとグローバルを意識しよう
「以前の投稿」で紹介しましたが、当サイトでは独自のパンくずリストにしていたのですが、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 '現在のページ'; } }