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全体を、好きなように変更することができます。

参考

関連記事

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

コメント

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • Posted on
  • Updated on
  • Views 517