でろぐ

でぐちのブログ略して「でろぐ」

WPでphpのreadfileが読み込まない不具合を回避する方法

今日は少し仕事で困った事があったので忘れないようにメモ。 まず前提としてページ内にあるサブナビだけをサイト内の共通要素として使用したかったのでいつも使っているphpのreadfileで対応しようとしたわけです。 ただ今回はその埋め込む対象が静的なHTMLファイルではなくWPのページ部分に追記する場合だったのがそもそもの事の発端です。

いつもやってる方法(一応メモ) htmlファイルでもphpが読み込めるように.htaccessに「AddHandler php5-script .html」と記述しphpを動作させるようにします。 今回の場合はサーバーがヘテムルだったのでこんな感じでおk。 もちろんphpのバージョンも既存の環境にあう設定です。 次に読み込むファイルを作成。今回はサブナビなのでsubnavi.htmlとでもしておきます。 subnavi.htmlには以下のみを記載するとします。

で、埋め込む側のファイルに絶対パスで <? readfile("http://xxx.cm/subnavi.html"); ?>

と記載。すると埋め込みを指定したページにsubnavi.htmlの記述が反映されて埋め込み完了。 動作も確認してきちんと埋め込まれている事が確認できました。

と、ここまではいつもどおりにうまく行ってたんですがWPのページ内にこの記述を埋め込むとなぜか反映されない・・・・・。 ためしに埋め込んだページと全く同じ記述の静的なHTMLファイルを作りアップロードしてみると反映されている・・・。 という訳でこの時点でもうお手上げでした。 同じ記述をしているのにHTMLファイルとWPのページ内では動作が違うなんて・・・プログラムがよくわかんない僕ではここでお手上げです。 これは困ったと思いTwitterで愚痴っているとふとアイデアが浮かびました。(ここからが本題ですw)

「あのプラグインを使えばreadfileと同じような動作をWP上で実現できるんじゃね?」

そのプラグインというのがContact Form 7です。 このContact Form 7というプラグインはその名のとおりWP上で簡単にフォームが設置できるようになるプラグインなのですが、 このプラグインを使ってサブナビを実装しちゃいましたw

使い方は簡単でプラグインの設定画面から新規でフォームを作成し、フォームの部分にsubnavi.htmlに記述してある

をまるコピすればおk。 あとはプラグインで指示されたコピペする記述をWPのページ内に貼り付けるだけ。 結果からいうとこっちの実装の方がWPでは簡単ですね。 フォームとかでめんどくさい時とかにたまに使ってたこのプラグインがこんな形で有効活用できるとは思ってもいませんでした。

これを応用すればサイト内のちょっとした共通要素をまとめて管理できる素晴らしいプラグインにはやがわりです! もちろんフォームにも使えるのでカバーできる範囲がとっても広い。 これからはインストール時の基本メニューに決定です!