WordPressの記事本文に特定の単語があれば取得して表示する方法
WordPressの本文に特定の単語があれば、取得します。それを別の単語に変換して表示させる方法です。
例えば記事内に「YouTube」のリンクがあるとします。
https://www.youtube.com/watch?v=ABC
「YouTube」のリンクがあるということは、この記事は「YouTube」に関する記事と判断して、別の場所に「YouTube」と自動表示させます。
使い方によっては便利なシステムです。このページでは、設定方法を紹介します。
使用方法
以下のコードをfunctions.phpに記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//functions.phpに定義する関数 function get_name() { //グローバル変数を使う為の宣言 global $post; $matches = $post->post_content; switch (true){ case strstr($matches, 'youtube'): echo 'YouTube'; break; case strstr($matches, 'nicovideo'): echo 'ニコニコ動画'; break; default: echo 'none'; } } |
functionでget_nameという名前の関数が使えるように定義します。
次にglobalでグローバル変数を使うための宣言をします。
$matchesに本文を挿入します。それをswitch構文を使用して、単語を探して変換表示します。
上記のコードであれば、本文内から「youtube」の単語を抽出して、「YouTube」に変換して表示させます。
なお、本文内に検索する単語が無い場合はデフォルトで「none」が表示されます。
もしも、必要無い場合は以下の部分を削除してください。
1 2 |
default: echo 'none'; |
次に、取得した単語を表示させたい部分に以下のコードを記述します。
1 |
<?php get_name(); //ここでget_nameを出力する?> |
これで自動的に表示されるようになります。
なお、コードを記述する場合は、記事の個別ページやトップページやカテゴリーページなどの記事一覧に設定してください。そうしないと本文内の単語は表示できません。
また、記事作成のエディターに直接記述しても表示されません。
使用方法2
先程は単語を取得するために、「switch」構文を使用しています。
もう一つの取得方法として、「if」構文を使用する方法もあります。
どちらの方法を使用しても特に違いはありません。
以下のコードをfunctions.phpに記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//functions.phpに定義する関数 function get_name() { //グローバル変数を使う為の宣言 global $post; $matches = $post->post_content; if (strstr($matches, 'youtube')) { echo "YouTube"; } else if(mb_strstr($matches, 'nicovideo')) { echo "ニコニコ動画。"; } else { echo "none"; } } |
違いは、「switch」構文が「if」構文に変わっています。
上記のコードでは、本文内から「youtube」の単語を抽出して、「YouTube」に変換して表示されます。
なお、本文内を検索して設定した単語が無い場合もあると思います。その場合はデフォルトで「none」が自動的に表示されます。
もし、「none」が不要の場合は以下の部分を削除してください。
1 2 3 |
else { echo "none"; } |
その他の表示設定方法や注意事項は「switch」構文と同じです。
注意事項
コードには、mb_strstr()を使用しています。以下の関数も使用可能です。
- 「mb_strstr」・・大文字小文字を区別して文字を検索
- 「mb_stristr」・・大文字小文字を区別しないで文字を検索
まとめ
記事本文から特定のキーワードや単語を取得して表示させる方法はWordpressを使っていると時々必要になると思います。
トップページで記事一覧を表示させたり、記事の内容を抜粋表示したりする場合が良くあると思います。その場合に、抜粋文だけではなく、特定の単語を抽出して表示させると、コンテンツ制作にアイデアが増えるのではないかと感じました。
プラグインを使用して対処するのも簡単ですが、自分で設定してみるとWordpressやPHPの勉強になるので良いと思いました。
アイデア次第では、単語やキーワードだけではなく、画像やURL、広告なども設定できると思います。
自動表示により、手動で行う作業が減って、制作が楽になります。
PR:プラグインの広告
*以下は動画プラグイン「What’s New Generator」の広告です。
「What’s New Generator」は、投稿、固定ページ、ウィジェットで表示したい位置にショートコードで「新着情報」を表示できるプラグインです。
タイトルや文書に「New」マークを付けることが可能です。新着記事が一目で分かるようになります。また、設定した日数により表示させたり、表示する投稿数を指定もできます。自動で新着情報を表示することができて便利です。