だれかのなにかに役立てるウェブ制作者YoTaの趣味ブログ

wp投稿記事the_content()の途中にソースコードをphpで強引に挿入する方法

wordpress

ワードプレスに慣れてくると、記事本文を出力するthe_content()の途中にソースコードを入れたくなることもあります。

そんな時、phpで強引にやる方法があるので、参考までに紹介したいと思います。

wordpressの投稿記事では、single.phpのテンプレートファイルにthe_content()のテンプレートタグを利用することで、管理画面に入力していたテキスト情報が表示されます。

この時、the_content()で出力されるテキストの途中にソースコードを仕込みたい人は多いと思います。

たとえば、記事の途中にアドセンス広告を挿入させたいなんて時があります。これはカスタム投稿で、最初から記事エリア1と記事エリア1みたいに切り分けておけばラクなのですが、途中から挿入するとなると、そういうわけにもいきません。

そんな時、「original_adv_space」なんて置換用メッセージを対象記事に記述することで、共通した内容を表示させる方法があります。

答えとしては、「the_content()」の関数自体をちょっと修正する、というものです。

the_content()を改修する方法

wordpressのwp-include階層化にある、「post-template.php」を開きます。

「function the_content」で検索をかけると該当の箇所が見つかります。

丸っとコピペして、the_content2と改名して、最後のechoをreturnとします。

これで、the_content()の内容をいったん文字列として取得して、phpファイル側から操作できるようになります。

置換用のコードを埋めておく意味

先ほどの「original_adv_space」なんて置換用メッセージを準備しておくと、のちほどの修正が楽になります。

たとえば、100個の投稿記事に、横長サイズの広告記事を示すコードをそのまま記述してしまうと、それを後から正方形バナー二つにしよう!なんて修正をする際、すべて手入力するか、DB側で一括置換するなどの手間が発生してしまいます。

ただ、「original_adv_space」といった一義的な置換コードを埋めておくと、「original_adv_space」を編集しているphpファイルを修正するだけで、対象記事すべてに修正内容が反映されます。

なので、投稿記事の途中になんかしらコードを入れたい時などに、この方法を知っておくとかなり便利です。

注意点

wp-includeの中のファイルを編集しますので、wordpressのバージョン更新などあった際、もしかしたら「post-template.php」の更新もされてしまい、ある日突然、作っていたスペースが消えてしまう、なんてことがあるかもしれませんので注意が必要です。

参考

上記の方法を見つけた人の記事がこちらです。(本当、ありがたく使わせて頂きました。)

ページ上部に戻る