【WordPress】カテゴリーに該当するアイキャッチが自動的に登録されるようにする方法

このサイトではご覧のとおりアイキャッチはカテゴリーで統一しています。
記事を書くたびにカテゴリーに該当するアイキャッチを手動で登録していますが、大量に画像を使うサイトでもありアイキャッチに使いたい画像はメディアライブラリの奥底に沈んでいます。
これを探し出すのがかなりの手間。
そこでカテゴリーを指定すると該当するアイキャッチが自動的に登録されるようにしましょう。

スポンサーリンク

functions.phpに関数追加

参考にさせていただいたサイトはこちら。
WordPressのアイキャッチ画像に任意のデフォルト画像を登録する方法(かちびと.net)

子テーマのfunctions.phpに以下のコードを追加します。

//カテゴリーに該当するアイキャッチを自動登録
add_action( 'save_post', 'auto_thumbnail' );	//記事を保存した時に関数auto_thumbnailを呼ぶ

function auto_thumbnail( $post_id ) {
	$post_thumbnail = get_post_meta( $post_id, $key = '_thumbnail_id', $single = true );	//登録されているアイキャッチを取得
	if ( !wp_is_post_revision( $post_id ) ) {	//投稿リビジョンでない場合
		if ( empty( $post_thumbnail ) ) {	//アイキャッチが登録されていない場合
			$post_cat = get_the_category();	//記事に追加されている全てのカテゴリーを配列で取得
			$cat = $post_cat[0];	//一つ目のカテゴリーを取得
			$thum_cat_id = $cat->term_id;	//カテゴリーIDを取得

			switch ($thum_cat_id) {
				case 2:	//カテゴリーが「お知らせ」のとき
					update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '488' );	//アイキャッチ追加
					break;
				case 7:	//カテゴリーが「WordPress」のとき
					update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '467' );	//アイキャッチ追加
					break;
				case 11:	//カテゴリーが「アフィリエイト」のとき
					update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '476' );	//アイキャッチ追加
					break;
				case 14:	//カテゴリーがPC&NETのとき
					update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '891' );	//アイキャッチ追加
					break;
			}
		}
	}
}

IDを調べる方法

カテゴリーIDを調べる方法

カテゴリー一覧で該当カテゴリーの上にマウスを置くとブラウザ下部に表示されるURLに表記されています。

20150323_cat_auto_thum_02b

画像IDを調べる方法

メディアライブラリで該当画像を選択するとブラウザのURLとして表示されます。

20150323_cat_auto_thum_01b

注意点

このサイトではカテゴリーを複数登録することがないため問題無いですが、複数のカテゴリーを登録するとカテゴリー配列の一つ目のカテゴリーでアイキャッチが登録されてしまいます。
その場合はまずアイキャッチを表示させたいカテゴリーを追加して一時保存をし、さらに2つ目のカテゴリーを追加するという手順が必要になります。

また「すでにアイキャッチが登録されている場合は実行しない」という処理になっていますので、登録したいアイキャッチを間違えたときはアイキャッチを一度削除してからカテゴリーを変更する必要があります。

これで作業が楽になりそうです。


スポンサーリンク
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA