1. TOP
  2. Wordpress
  3. wordpressでタイトルや記事を自動的にカテゴリ設定する方法

wordpressでタイトルや記事を自動的にカテゴリ設定する方法

カテゴリーを自動設定

WordPressでタイトルや記事に特定のキーワード(語句)が出て来たときに自動的にカテゴリーに設定する方法です。

まとめサイトやポータルサイトなどの規模の大きいサイトを運営していると、わざわざカテゴリーを設定するのが大変になってくることがあると思います。

そんな時に、タイトルや記事に予め作成したカテゴリーの語句が出て来たときは、記事を公開時に自動的にカテゴリーに設定出来るようにします。

例えば、予めカテゴリーに「東京」が作成されています。タイトルや文章に「東京」が出て来た際は、記事の公開ボタンを押すと自動でカテゴリーの「東京」に設定されます。

また、カテゴリーに「東京」や「大阪」など複数あり、タイトルや文章も同様にある場合は、複数のカテゴリーに設定されます。

もしも、カテゴリーに該当するタイトルや文章がない場合は、初期設定の未分類(デフォルト)に自動的に設定されます。

使用方法

1.初めに設定したいカテゴリーを全て作成しておきます。

2.タイトルに含まれるキーワードとカテゴリーが同じ場合は自動的に設定される方法です。

以下のコードをfunctions.phpに記入してください。

//カテゴリーを自動設定
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行目のコードを以下の内容に変更します。

  $content = $new_post->post_content;

これで記事に出てくるキーワードによって自動的にカテゴリーが設定されます。

使用するポイントは、タイトルの場合は文字数が少ないため、カテゴリーに該当する語句が出てこないと未分類(デフォルト)が多くなります。

逆に記事の場合は、文章が長いため、沢山のカテゴリーに設定されやすくなります。

私自身は、RSS取得やスクレイピングで記事を自動作成していたので、公開時にカテゴリーが自動設定されて助かりました。

但し、「東京」というタイトルの文章があるとします。内容は「東京」について書かれていますが、部分的に「大阪」や「北海道」の語句も出てくるとします。

タイトルで設定すればカテゴリーは「東京」だけですが、記事で設定すると「東京」「大阪」「北海道」と複数設定設定されます。

あまり、「大阪」「北海道」に意味がなく一言二言出て来ただけで設定されると、カテゴリーページから記事にアクセスした人の興味がなくなると思います。

タイトルにするか記事にするかは、その点を考慮して設定すると良いと思います。

過去の記事

この方法を途中から導入した場合は、過去の記事も設定させるのに、一つ一つ更新していると面倒です。

そのときは、該当する記事を選んで「編集」→「一括設定」で更新すると沢山設定できます。

一括で編集する

まとめ

あまり使うことがない方法かもしれませんが、自動システムや大規模サイトには、カテゴリーが自動設定できて便利な方法です。

記事を一つ一つ公開している人は、このシステムは不要だと思います。

この方法を応用すればカテゴリーだけでなくタグも可能です。

また、特定のキーワードが出て来たら、該当する記事や画像を表示などといった方法も思いつき、アイデアが広がります。

またの機会にご紹介します。

WordPressは便利な自動設定や自動システムも多数あるので上手く使用して、サイト作成の時間短縮をしてください。

この記事を作成するに辺り、以下のサイトを参考にさせて頂きました。ありがとうございます。

*参照記事:WordPressのカテゴリを自動設定する方法