さて、そろそろ本格的にブログを改造しようかなと思っていたら思わぬ罠にはまりました。
とりあえず解決はしましたので、メモっておきます。
1.突如固定ページが真っ白に!
突如と言っても多分大分前だと思いますが、固定ページが真っ白になってました。
ウチのブログで固定ページをつかっているのは検索結果を表示させる【search_result.php】だけなんで、全然気づかなかった…。
困ったら検索!ということで、wordpress、固定ページ、表示されない、真っ白とかたっぱしから検索してみます。
しかし全くヒットしない!
うーむ。世界で何億人もの人が仕様しているwordpressで同じ症状がないだと…!?
検索の範囲を広げ、サーバ関係の記事も検索。
関連しそうなプラグインを切ってみたり自力で解決を試みるも歯がたたない…。
2.エラーメッセージを表示させろ!
困り果てましたが、調べてみて引っかかったのが、「ページが真っ白になる」という症状です。
「404(Not found)が出てしまう」という事象はいくつかあったのですが、それすら出ないというが気になりました。
そこで下記ページが参考に!
WordPressで画面が真っ白になったら、最初にやるべきこと(WordPressで画面が真っ白になったら、最初にやるべきこと | Simple Colors)
真っ白な表示になるということは、ほぼ100%なにがしかのエラーが発生していて処理が止まってしまっているということで、解決への最短距離は、エラーメッセージを表示させて何のエラーが発生していて、どこで止まっているかという、エラーの原因を把握し、発生箇所に対して適切な修正を施すことです。
なるほど!エラー箇所を割り出せば、解決の突破口に!
早速【wp-config.php】の中にある【define(‘WP_DEBUG’, false);】を【true】へ変更し調査!すると…
Fatal error: Call to undefined function
get_page_template_slug() in /home/********/www/wp-includes/template.php on line 228
出ました!うーん、どうやら【template.php】が原因らしい。
Fatal errorってことでプラグインが悪さをしているっぽいです。何かはわかりませんが…。
3.【template.php】を変更!
プラグインはいくつか試したのですが、効果がなかったので、【template.php】を修正していきましょう。
該当箇所は228行目
function get_page_template() { $id = get_queried_object_id(); $template = get_page_template_slug(); $pagename = get_query_var('pagename'); if ( ! $pagename && $id ) { // If a static page is set as the front page, $pagename will not be set. Retrieve it from the queried object $post = get_queried_object(); $pagename = $post->post_name; } $templates = array(); if ( $template && 0 === validate_file( $template ) ) $templates[] = $template; if ( $pagename ) $templates[] = "page-$pagename.php"; if ( $id ) $templates[] = "page-$id.php"; $templates[] = 'page.php';
やはりテンプレート関連の記述が。この228行目をごっそり削除してやると普通に見れるようになりました!
※あと241行目のpage-$pagename.phpってとこのpage-が邪魔で【search_result.php】が認識されなかったのでこれも消去。
ってことでとりあえず解決はしたんですが、そもそも以前の古いバージョンのwordpressには【template.php】なんてなかったような…?やはりバージョンアップするときは注意が必要ですなぁ。
本格ビジネスサイトを作りながら学ぶ WordPressの教科書 プライム・ストラテジー株式会社 ソフトバンククリエイティブ 2012-03-30 by G-Tools |
↑ブログ村ランキング参加中… クリックよろしゅうm(_ _)m
コメントする