is_front_page()が使えなくなった

トップページかどうかの判断をis_front_page()で行っていた。これがあるときから、常にfalseになった。トップページかどうかでcssを切り替えているため、急にデザインが崩れて困った。is_home()で回避できるものの、腑に落ちないのでちょっと調べた。

直前に行っていた操作を思い出すうちに、管理画面で1ページに表示する最大投稿数を変更したことが原因らしかった。ためしに他のブログでもこの操作をしたら再現したのだ。しかし最大投稿数もとに戻したところで、is_front_page()はもとにはもどらなかった。

しかたがないので、Wordpressのコアソースでis_front_page()を追った。is_front_page()とは、’posts’ == get_option(‘show_on_front’) && is_home()というような意味らしい。この’show_on_front’というオプションがおかしくなっているようだ。MySql上ではではテーブルwp_optionsに設定されている。この値が空になっていたので手動で’posts’に書き直した。
is_front_page()は正常に戻ったように思う。

ググっても見当たらないけど、これはバグなのかな?

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください