質問: ### 前提・実現したいこと Wordpressにてサイトを運営しているのですが、 先月突然に「サイドバー無し」に指定していた投稿ページがHTTPエラー(500)で正常に表示されなくなりました。 「Custom Post Templates」 というプラグインを停止したら閲覧できるようにはなりましたが、 カスタム投稿タイプで追加してあるスライダーや個別の写真などは一切表示されず、 本文のみテキストで入力したものだけが表示されている状態です。 (サイドバーも乱れて表示されます) 固定ページでは今までと代わりなく正常に表示されており、 投稿ページでのみ上記不具合が出ております。 何かよい対策がないものか、どなたかご教示いただけましたら幸いです。 事情により私個人のサイトではないためにURLを記載できません。 同じような状況を把握されていらっしゃる方にご協力いただけないものかと思い、質問いたしました。 申し訳ありませんが、何卒よろしくお願いいたします。 WPバージョンは 4.9.6 ロリポップ!サーバーのPHPバージョンは 7.1 です。 ### 発生している問題・エラーメッセージ ``` 投稿ページでサイドバーの表示有無をプラグインで切り替えていたが、 → デバッグモードでそのプラグインがサイトでの不具合の原因と判り、停止した → 現在は投稿ページ全てにサイドバーが表示されており、さらに投稿ページで追加している画像などのデータが無視され全体的に表示に大きく乱れが生じている ・使用していたプラグイン : Custom Post Templates バージョン 1.5 (最終更新が6年前になっている) ・投稿ページで表示を切り替えるためのPHPファイルは現存している ``` ### 該当のソースコード ### 試したこと * 同様のプラグイン 「Singe Post Template」 を利用しようと思ったが、こちらも最終更新が5年前と古いため試用は避けている * 「Fullwidth Templates for Any Theme & Page Builder」 というテンプレートが比較的近いものと思い有効化してみたが、 属性でスライドバーなしのテンプレートを選択できるにもかかわらず、サイト上での表示は上記に発生している不具合と同様で変化が見られない。 ### 補足情報(FW/ツールのバージョンなど)
回答: 使用されているテーマによっていろいろなので参考資料として回答させていただきますね。 通常Wordpressのテーマ内では ・「page.php」で固定ページの表示 ・「single.php」で投稿の表示 をしています。そして、カスタム投稿タイプに関しては、特に**指定**がなければ「single.php」を通して表示されるようになっています。 この**指定**というのは例えば「custom」というカスタム投稿タイプであれば「single-custom.php」というファイルを作って「single.php」と同じ場所に入れることで「custom」という投稿タイプのものは「single-custom.php」を通して表示されるようになっています(これはWordpressの仕様です)。 恐らく使われていた「Custom Post Templates」というプラグインはこの動作に割り込んでいろいろな制御をしたり、表示内容を独自のものにできるようなプラグインかと思われます。そして不具合が出てプラグインを停止したら割り込まれてるはずのものが動いていないことから表示が崩れるという現象が出ていると思われます。 これが固定ページでは正常なのに投稿では表示がおかしい・・・となるからくりになります。 このプラグインのことを知らないので何とも言えないですが、テーマのファイル内に前述したような「single-〇〇.php」というファイルを作成してそこにいろいろな記述をしていると思われますので、一度テーマの編集からファイルを確認してみてください。 そして「single-〇〇.php」(〇〇は投稿タイプ名)があれば、single.phpの内容をすべてコピーしてみてください(コピー前にはパソコンのメモ帳などに内容をコピーしてバックアップしてください。本来は削除することが正しいのですが、Wordpressの管理画面上では無理なので)。それで正常に表示できるのであれば修復は完了ということになります。 また、その投稿タイプだけサイドバーをなしにするといったことをするのであれば「single-〇〇.php」で 1.サイドバーを呼び出している部分を削除する 2.本文を呼び出しているところのdiv idを変更する 3.変更したdiv.idに対して幅などの情報をCSSに追記する といった方法で実現できると思いますが、それなりの知識が必要でしょう 冒頭に書いた通り、これは一般的な話で、使用しているテーマや環境によっても違いますし、実際に状態を見て対処するのが本来の修復方法ですから質問の内容からはこれ以上の回答はできませんので、後は有料の修復などを依頼するほかないかと思います。