【解決済み】wordpress本文が表示されない不具合

wordpress

 

エンジョイワークスではお客様のホームページの制作にwordpressというCMSツールを用いることがあります。

 

今回、wordpressを使用しての案件で制作過程での不具合が発生し、それの解決策を発見しましたのでメモします。

様々な要因が考えられますが、解決策の一例としてご参考にしてください。

 

目次

wordpressの本文が表示されない現象

サイト制作時に各固定ページ・ブログページのコンテンツエリアに表示させる本文を、wordpress管理画面のwysiwygエディタから入力し、公開ボタンを押しましたがサイト上に保存・公開したはずのコンテンツ内容が表示されていませんでした。

ヘッダーやフッター、サイドバー等の部分は問題なく表示されており、「入力したのに表示されていない」という状態は本文の部分のみでした。

 

「一時的な不具合か何か?」

 

と思いましたが、しばらく時間をおいても「更新」をしても変わらず。

 

何度かwordpressでの構築作業を行ってきましたが、今回のようなケースは初めてでした。

 

本文出力のタグが原因?

まず、表示されていない部分が本文のみなので本文を出力する箇所を当たってみることにしました。

 

特にカスタマイズをしていなければ、固定ページのコンテンツ部分を表示するwordpressのタグは<?php the_content(); ?>なわけですが、

ソース上はコードが存在するのにブラウザ上では表示されていません。

 

wordpress codexを閲覧し、

 

「the_contentタグはループ内で使用しないと動作しない」

 

と記述があったので確認しましたが、問題なくループ内に<?php the_content(); ?>が記述されており、問題があるようにはみえませんでした。

 

しばらくthe_contentタグの箇所を疑って原因を調査していましたが、固定ページだけでなくブログ記事の内容も表示されていませんでした。

 

そちらのテンプレートをみるとthe_contentではなく、get_template_blogのタグで記事内容を出力していました。

 

なのでthe_contentに問題があるという仮定はひとまず保留にし、別の原因を探ることにしました。

 

プラグインが原因?

お客様がホームページを運営する際に更新の手間を快適にするために色々なプラグインを追加していますが、

 

その中で発生源と思われるプラグインを発見しました。

 

それが

brBRbrプラグイン

です。

 

このプラグインは、エディタで改行を入力した際にwordpressの自動成形によって改行数が無視され意図しない改行位置になってしまうのを防ぐプラグインです。

 

このプラグインを有効化しているとコンテンツの中身が表示されない不具合が発生し、無効化すると内容が表示されるという状況を発見しました。

 

使用していたwordpressのバージョンは4.7.3で2017年03月10日時点で最新です。

 

「このwordpressのバージョンとbrBRbrプラグインが何かしら競合し、この不具合を発生させているのではないか?」

 

と思い、brBRbrプラグインに代わる改行プラグインを探す方向にシフトしようとしましたが、

念のため他のサーバーでも同じ現象が発生するのか確認することにしました。

 

問題が発生しているサーバーとは別のサーバーで、wordpress4.7.3をインストールし、通常のフローと同じ手順でテンプレートを実装。

次に、ブログ記事・固定ページ共にテストコンテンツを投稿し、問題と思われるbrBRbrプラグインをインストールし有効化。

コンテンツの表示を確認すると、これがなんと問題なく表示されていました。

 

問題が発生している環境では、brBRbrプラグインの有効化・無効化で現象のスイッチが確認できたので、てっきりプラグインが原因だと思っていましたが、この確認によりbrBRbrプラグインが直接の問題ではないという結論にいたりました。

しかしながらこのプラグインがなんらかのきっかけになっていることは濃厚なようです。

 

サーバーの設定の問題?

複数のサーバーを利用し、その中に最新バージョンのwordpressをインストールしているわけですが、先の検証により件のプラグインを有効化してもコンテンツが表示されない問題が発生するサイトとそうでないサイトがあることに気づきました。

しかしながら、wordpressのインストールからプラグイン導入・有効化、コンテンツ表示までのそれぞれ手順や作業内容は一緒でした。

なので、

 

「サーバーの設定に問題があるのではないか?」

 

という仮説に至りました。(厳密に言うとサーバーの設定によってプラグインが不自然な挙動をしてしまっている)

 

問題が発生するサイトをインストールしているサーバーと問題なく本文を表示しているサイトのサーバーを比較。

 

すると以下の点に相違がありました。

問題ないサーバー

PHPバージョン5.4~5.6

問題が発生するサーバー

PHPバージョン7

 

糸口が見えたようです。

 

解決に至った方法

今回の件では、それぞれのサイト共にヘテムルというレンタルサーバーを使用していました。

ヘテムルの管理画面から問題が発生しているサイトをインストールしているphpのバージョンを7から5.6に変更し保存しました。

これにより特にソースコードを弄る必要や代替のプラグインを導入する必要がなく、brBRbrプラグインを有効化していても無事に本文が表示されるようになりました。

 

phpのバージョンによってプラグインが正常に動作していない状態だったようです。

 

wordpressのコンテンツ本文が表示されないという状態の場合、一度サーバーのphpバージョンの確認とプラグインがそれに適応しているかを確認してみると今回のような問題は解決できるかもしれません。