WordPressですべての処理が終わった後にコンテンツを置換する方法(アクションフック)

WordPressですべての処理が終わった後にコンテンツを置換する方法(アクションフック)

Photo Anton Repponen via Unsplash

WordPressで投稿本文のコンテンツを置換したいときは、「the_content」にフックさせます。

function change_the_content($the_content) {
  $the_content = str_replace('aaa','bbb',$the_content); //HTML出力で置き換える処理
  return $the_content;
}
add_filter('the_content','change_the_content');

簡単ですね。

では、投稿本文ではなく、WordPressで出力されるHTML全体に対して置換処理を行いたいときはどうしたらいいのでしょうか?

投稿本文ではなく、WordPressですべての処理が終わった後、HTMLが出力される直前に置換処理を行い時は、「after_setup_theme」と「shutdown」のアクションフックを活用して次のよにします。

function call_back($buffer) {
  $buffer = str_replace('aaa','bbb',$buffer); //HTML出力で置き換える処理
  return $buffer;
}

function buf_start() { ob_start("call_back"); }
function buf_end() { ob_end_flush(); }

add_action('after_setup_theme', 'buf_start');
add_action('shutdown', 'buf_end');

これでWordPressで出力されるHTML全体を、好きなように変更することができます。

参考

WordPressテーマの人気記事

2017年、人気の無料WordPressテーマ100選
2017年、人気の無料WordPressテーマ100選
2017年におすすめしたい、日本語対応の有料WordPressテーマ10選
2017年におすすめしたい、日本語対応の有料WordPressテーマ10選
アドセンス運用に最適なWordPressテーマ3選
アドセンス運用に最適なWordPressテーマ3選

コメント

  • Posted on
  • Updated on
  • Views 367