
WordPress 4.9.2 (Simplicity2 テーマ)を使用しています。
やりたいこと
投稿ページの内容をフィルターを使って画面出力前に内容に手を加えたい
下記のソースは、内容に含まれる文字を置換しています。
この通り、function.phpに書いても動作しません。
参考サイト
http://kachibito.net/wp-code/replace-keywords
php
1 2function change_any_texts($text){ 3 $replace = array( 4 //'変更前' => '変更後', 5 '編集' => '<a href="#">編集</a>', 6 '削除' => '<strong>削除</strong>' 7 ); 8 $text = str_replace(array_keys($replace), $replace, $text); 9 return $text; 10} 11add_filter('the_content', 'change_any_texts'); 12
function内で$textをechoすると、ちゃんと$textの中身の文字の変換はできていました。
しかし、実際にページを表示させると変換されていませんでした。
function内では変換できているのに、returnで返っていないのか?
原因不明でした。
確認したこと
「注意! get_the_content はフィルターを適用せずに内容を返します。 」
ということを知ったので、single.phpでget_the_contentで出力していないか確認
使っていませんでした。
内容の置換ならSearch Regexというプラグインを使えばよいですが、
置換以外にも、画面出力前に内容の最後にバナー画像を追加したりと
このへんのやり方をマスターしたいと思っています。
原因がわからず、ゆきずまってしまいました。
回答2件
あなたの回答
tips
プレビュー