私は通常、wordpressの会社名の各インスタンスを置き換えようとしていますが、時々(通常はリンクのhrefに)リンクを壊している問題にぶつかりました。私が使用しているstr_replaceのhtml属性を除外します
コードが
//Replace the word lunch with a span
function replace_text_wps($text){
$replace = array(
// 'WORD TO REPLACE' => 'REPLACE WORD WITH THIS'
'lunch!' => '<span class="lunch">lunch!</span>',
'Lunch!' => '<span class="lunch">lunch!</span>',
'LUNCH!' => '<span class="lunch">lunch!</span>'
);
$text = str_replace(array_keys($replace), $replace, $text);
return $text;
}
add_filter('the_content', 'replace_text_wps');
add_filter('the_excerpt', 'replace_text_wps');
add_filter('the_title', 'replace_text_wps');
add_filter('acf_the_content', 'replace_text_wps');
のみのhrefタグのようなものの外にそれを交換する方法はあります(ACFカスタムフィールドのためのフィルタを含みますか)?私はDOMパースのようなものを調べましたが、単純なメソッドがあるかどうかはわかりません。他のインスタンスでも悲しみを引き起こすようには見えないので、HMTL全体を処理し、言葉は適切です。前と後のスペースを含む文字列を検索するのは不思議でしたが、先頭と末尾のスペースをどのように含めるかわからず、ちょっとした気分になりましたか? ありがとうございます! Pete
待ち時間がなくなったら、問題が解決されたことを誰もが理解できるように、回答を受け入れてください。もちろん、誰かがより良い解決策を思い付くのを待っている場合を除きます。 – Christoph