フィルターフックで投稿本文を置換する方法を教えてください。
-
フィルターフックで投稿本文を加工する方法を教えてください。
いつもお世話になっております。下記の質問についてご存知の方が
いらっしゃいましたら、ご教示お願いします。—
【質問の主旨】
フィルターフックで投稿本文を置換する方法を教えてください。
【質問の補足】
1.
現在、エンジニアのためのWordPress開発入門のP.126を学習しています。2.
フィルターフックで投稿本文を置換する方法の例が掲載されていますので、下記のコードをfunctions.phpに記述しています(str_replaceの第一引数と第二引数は任意の文字列に変えています)。add_filter( 'the_content', function() { return str_replace ('Welcome', 'ようこそ', $content); } );
3.
上記の方法でページをリロードすると、Notice: Undefined variable: content in /var/www/wordpress/wp-content/themes/twentyseventeen/functions.php
という文字列が表示されます。現在、デフォルトのHello Worldの記事しか投稿されていないため、「Welcome」が「ようこそ」と置換されることが期待されますが、意図通りになりません。
4.
エラーの意味は、「$contentが定義されていない」だと思います。ですが試しに$contents = get_post(1); $content = $contents->post_content; add_filter( 'the_content', function() { return str_replace ('Welcome', 'ようこそ', $content); } );
として、自分で$contentを定義してみても、やはり同じく
Notice: Undefined variable: content...
が表示されます。変数は定義しているのに、「$contentが定義されていない」と言われるのは、何とも理解できません。
またこの書き方で通ったとしても、p=1の記事の「Welcome」は「ようこそ」に置換されても、他のページでは置換されません。5.
「フィルターフック 本文 置換」と「フィルターフック 投稿 加工」という文字列でフォーラムを検索してみましたが、自分の意図する動作をさせるための手がかりは得られませんでした。—
以上、よろしくお願い申し上げます。
- トピック「フィルターフックで投稿本文を置換する方法を教えてください。」には新たに返信することはできません。