謎な現象。
WordPressにて、以下のように固定ページのスラッグを取得しようと思ったところ・・・
$page = get_page(get_the_ID()); $slug = $page->post_name; echo $slug;
動かない・・・。
body要素のclass属性にスラッグ名を設定しようとしたわけですが、body以降が生成されないために、ブラウザで確認すると真っ白。
ちなみに上記のコードをはずすとちゃんとページは表示されます。(もちろん、bodyのclassには何も設定されませんが)
今までさんざん使ってきて何の問題もなく動いていたのに、どうしたことでしょうか。
違うことといえば、今回使ったサーバーのPHPのバージョンが4だということくらい。
うーん。
get_the_ID()
の代わりに、the_ID()
を入れてみると、エラーにはならない。ならないけども、IDの数字がテキストとして表示されてしまうので使えない。
ただ、これでget_the_ID()
で引っかかていることは明らか。
ひとまず、代用策として、グローバル変数$post
を利用して以下のようにしてみました。
$page = get_page($post->ID); $slug = $page->post_name; echo $slug;
これで目的の動きは果たせるので事なきを得たのですが、謎が残ったまま。
なぜget_the_ID()
は動かないのか?
時間があったら追跡調査しておきます。
何かわかったら追記しておきます。
その前に、だれか原因がわかる人がいたら教えて・・・。