Wordpress 内で、投稿のコンテンツを読んでキーワードを探し、それに応じてサイドバーのコンテンツを表示することはできますか? 例:
投稿コンテンツに「チーズ」という単語が含まれている場合はサイドバー広告を表示しないでください。それ以外の場合は表示します。
追加情報として、500 件を超える投稿があるため、すべての投稿にタグやカスタム フィールドを追加したくありません。
コードの例を含めたいと思いますが、functions.php で正規表現から始めるかどうかは本当にわかりません。もしそうなら、サイドバー コードで何を探すべきでしょうか?
前もって感謝します。
更新 1 - Stripos は、この目的のために正規表現よりも高速に思われるため、php.net の Striposを使用しました。
更新 2 - 私の現在の設定... index.php (またはテーマに応じて page.php など):
<?php
if( has_keyword() ) {
get_sidebar( 'special' );
} else {
get_sidebar( 'normal' );
}
?>
そして functions.php で
function has_keyword ()
{
global $post;
$mywords = array('word1', 'word2', 'word3');
foreach($mywords as $word){
// return false if post content does not contain keyword
if( ( stripos( $post->post_content, $word ) === false ) ) {
return false;
};
};
// return true if it does
return true;
}; //end function
foreach 関数を機能させる必要があります。何か問題があります。単語の検索に成功したときに「break」を使用しようとしましたが、「false」も返す必要があるため、if 条件を追加しました。これを行う方法がわからない。