PHP言語で、WordPress APIのhooksを使用し、様々な処理やフィルタが完了したあとの最終的なHTMLを取得し、PHPで編集、改変してレンダリングする方法について紹介します。
最終的にWordPressに表示されるHTMLを弄って、本当に最終的に出力されるHTMLを変えるには、ob_start("callback");
を使用します。
使用する状況としては、例えば、hooksの用意されていないプラグインから出力されたHTMLを変えたいときとか?
HTMLタグまたはタグの中身を動的に変えたい場合とか、でしょうか。
まぁ正規表現で色々やることになるかと思います。かなり汚いやり方になりますが、それしかやり方がないと言うならばそれも仕方ないでしょう。
HTML…またの名をDOM要素のなにかを変えたいって場合なら、読み込まれてから、JavaScriptで色々やったほうが良いかと思いますが。
以下のPHPを、header.phpやfunctions.phpへコピペして使用してください。
このコードですと、何もしない、コードになります。
サンプルとして、$buffer = preg_replace('/alt=".*"/', 'alt="hogehoge"' , $buffer ) ;
を有効にすれば、画像のaltタグの中身を”hogehoge”に変える、という正規表現置換をします。
っと今気づきましたがこれはpreg_replace
はpreg_replace_all
(?)にする必要があるかも知れません。変える場合はリファレンスをちゃんと読んで変えてみてくださいね。
<!--?php
function callback($buffer) {
// replace all the apples with oranges
// return (str_replace("サイト", "サイト", $buffer));
// $buffer = preg_replace('/alt=".*"/', 'alt="hogehoge"' , $buffer ) ;
return $buffer ;
}
ob_start("callback");
?-->