ワードプレスで出力されるJSやHTMLを一旦変数に入れて加工し、再出力する方法のPHPコードを解説いたします。

出力を一旦変数に入れる関数ob_start

例えば下記のようなコードがあったとします。

echo "ワードプレス!";

上記コードは、ワードプレス! という文字列を即時出力しますが、このような出力をob_start、ob_get_cleanでくるむことで出力を一旦抑制し、変数に代入することが可能です。

ob_start();
echo "ワードプレス!";
$output = ob_get_clean();

このコードでは、ワードプレス!という文字列が$output変数に代入され、出力が抑制されますので、出力内容を加工することが可能になります。

例えばプラグインで即時何かを出力してしまうコードを使用するときでもこの方法は使えます。

ob_start();
plugin_function();//何らかのプラグインの関数
$output = ob_get_clean();

下記のようなHTML混在のコードでもこの方法を使用することができます。

ob_start();
?>
<div>出力されるHTML</div>
<?php
$output = ob_get_clean();

?>でPHPのプログラム部分が終わり<?phpでまた始まるまでの間のHTMLは自動で出力されますが、その全体をob_start、ob_get_cleanでくるんでいったん$output変数に入れて、置き換え処理等をすることができます。

処理が終わったら、再度echo 等で$outputを出力します。

echo $output;

ご参考になりましたら幸いです。

WordPress ワードプレスのテーマやプラグインの作成・カスタマイズのご依頼ご相談はWPドクターまでお気軽にお送りください