記事を書いている時にいちいちカテゴリーにチェックを入れる一手間って面倒くさいですよね。もちろん記事にタグをつけるのもそうなんですが、
タグはおいおい紹介させていただくとして…。
カテゴリーに登録されているキーワードがタイトルに含まれている場合に、自動でカテゴリを設定できる方法をご紹介します。
ソースコードを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 | function auto_set_category ( $post_id ) { global $post; $new_post = get_post( $post_id ); $content = $new_post->post_content; /* 全てのカテゴリーをチェック */ $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' ); |
これで、記事を投稿するたびに自動的にカテゴリが設定されるようになります!大文字、小文字の区別はありません。
投稿済みの記事にカテゴリーを付ける場合
更新や投稿のタイミングでカテゴリーを設定しているので、もう既に投稿済みの記事にカテゴリーを付けたい場合は、投稿済みの記事を更新すればカテゴリーが設定できます。
投稿済みの記事数が多い場合は、投稿一覧から記事の一括編集でもカテゴリーを設定できますが、デフォルトで20記事表示になっているので右上の表示オプションからページごとに表示する項目数を変更して下さい。
あまり多すぎると処理が途中で止まってしまうので、サーバの設定を確認して行ってくださいね!