wordpressでタイトルや記事を自動的にカテゴリ設定する方法
WordPressでタイトルや記事に特定のキーワード(語句)が出て来たときに自動的にカテゴリーに設定する方法です。
まとめサイトやポータルサイトなどの規模の大きいサイトを運営していると、わざわざカテゴリーを設定するのが大変になってくることがあると思います。
そんな時に、タイトルや記事に予め作成したカテゴリーの語句が出て来たときは、記事を公開時に自動的にカテゴリーに設定出来るようにします。
例えば、予めカテゴリーに「東京」が作成されています。タイトルや文章に「東京」が出て来た際は、記事の公開ボタンを押すと自動でカテゴリーの「東京」に設定されます。
また、カテゴリーに「東京」や「大阪」など複数あり、タイトルや文章も同様にある場合は、複数のカテゴリーに設定されます。
もしも、カテゴリーに該当するタイトルや文章がない場合は、初期設定の未分類(デフォルト)に自動的に設定されます。
使用方法
1.初めに設定したいカテゴリーを全て作成しておきます。
2.タイトルに含まれるキーワードとカテゴリーが同じ場合は自動的に設定される方法です。
以下のコードをfunctions.phpに記入してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
//カテゴリーを自動設定 function auto_set_category ( $post_id ) { global $post; $new_post = get_post( $post_id ); $content = $new_post->post_title; /* カテゴリーを確認 */ $cat_all = get_terms( "category", "fields=all&get=all" ); foreach($cat_all as $value): /* カテゴリーと同じキーワードが含まれていたら、該当するカテゴリに設定 */ if ( stripos( $content, $value->name ) !== false ) { wp_remove_object_terms( $post_id, 1, 'category' ); wp_add_object_terms( $post_id, $value->name, 'category' ); } /* カテゴリーと同じキーワードがない場合、既存のカテゴリを外す */ else { wp_remove_object_terms( $post_id, $value->name, 'category' ); } endforeach; /* カテゴリーがない場合は、デフォルトに設定 */ $catcheck = get_the_category($post_id); if ( is_array($catcheck) && is_null($catcheck[0]) ) { wp_add_object_terms( $post_id, 1, 'category' ); } } add_action( 'save_post', 'auto_set_category' ); |
以上で自動的にカテゴリーに設定されます。
3.記事に含まれるキーワードとカテゴリーが同じ場合は自動的に設定される方法です。
4行目のコードを以下の内容に変更します。
1 |
$content = $new_post->post_content; |
これで記事に出てくるキーワードによって自動的にカテゴリーが設定されます。
使用するポイントは、タイトルの場合は文字数が少ないため、カテゴリーに該当する語句が出てこないと未分類(デフォルト)が多くなります。
逆に記事の場合は、文章が長いため、沢山のカテゴリーに設定されやすくなります。
私自身は、RSS取得やスクレイピングで記事を自動作成していたので、公開時にカテゴリーが自動設定されて助かりました。
但し、「東京」というタイトルの文章があるとします。内容は「東京」について書かれていますが、部分的に「大阪」や「北海道」の語句も出てくるとします。
タイトルで設定すればカテゴリーは「東京」だけですが、記事で設定すると「東京」「大阪」「北海道」と複数設定設定されます。
あまり、「大阪」「北海道」に意味がなく一言二言出て来ただけで設定されると、カテゴリーページから記事にアクセスした人の興味がなくなると思います。
タイトルにするか記事にするかは、その点を考慮して設定すると良いと思います。
過去の記事
この方法を途中から導入した場合は、過去の記事も設定させるのに、一つ一つ更新していると面倒です。
そのときは、該当する記事を選んで「編集」→「一括設定」で更新すると沢山設定できます。
まとめ
あまり使うことがない方法かもしれませんが、自動システムや大規模サイトには、カテゴリーが自動設定できて便利な方法です。
記事を一つ一つ公開している人は、このシステムは不要だと思います。
この方法を応用すればカテゴリーだけでなくタグも可能です。
また、特定のキーワードが出て来たら、該当する記事や画像を表示などといった方法も思いつき、アイデアが広がります。
またの機会にご紹介します。
WordPressは便利な自動設定や自動システムも多数あるので上手く使用して、サイト作成の時間短縮をしてください。
この記事を作成するに辺り、以下のサイトを参考にさせて頂きました。ありがとうございます。
*参照記事:WordPressのカテゴリを自動設定する方法