【wordpress】で新規投稿・編集・保存時にカテゴリ別のアイキャッチ画像を自動で設定する

wordpress

タイトルがちょっとよく分りにくい感じになってしまいましたが、要点を説明すると。

・動作するタイミング
記事新規投稿・編集・下書き時

・動作の条件
アイキャッチ画像が設定していない時のみ動作
function.phpで設定したカテゴリのみで動作
複数のカテゴリを選択している場合は、動作が微妙なので非推奨。
親カテゴリとその下の子カテゴリを使う場合は、子カテゴリの設定した画像が優先して使われます。

・使用するのに向いている人
カテゴリをそんなに多く設定しない人
アイキャッチ画像を自分で用意するのが面倒な人

使い方-サンプルコード

参考リンク
WordPressのアイキャッチ画像に任意のデフォルト画像を登録する方法 – かちびと.net
このコードの大部分はこちらのページを参考にしました。

functions.phpに以下のコードを任意の位置に記載します。

設定する部分

カテゴリIDは自動で取得するように書いているので、caseの部分で条件分岐させています。
表示させる画像の設定はmeta_valueの値に書きます。

カテゴリIDの確認方法はデータベースで直接見るか、wordpress管理画面から【投稿】→【カテゴリー】→【確認したいカテゴリ】の編集画面のURLで確認できます。
画像の例ではtag_id=4の【4】がカテゴリIDになります。

カテゴリURLの確認の画像
カテゴリURLの確認の画像

データベースから見る場合は、【wp_terms】の【term_id】がカテゴリIDとなります。

データベースのカテゴリIDの位置の画像
データベースのカテゴリIDの位置の画像

画像のIDは同じく管理画面から【メディア】→【アイキャッチに設定したい画像】をクリックした時のURLで確認できます。
この例ではitem=1070の【1070】が画像IDです。

画像IDの確認画像
画像IDの確認画像

備忘録

元々記事管理画面のアクションでやりたい事があったので、調べていた時に思いついたので書いてみました。
思いつきついでに色々と勉強になりました。

カテゴリIDの取得が結構簡単に出来たのが良かった。

ただこれじゃあ複数のカテゴリIDは取得できないので、複数取得する場合はforeachで回して配列から抽出する。

これで複数のカテゴリIDを取得することには成功したんだけど、ここから【複数のカテゴリが設定されている場合の条件処理】が全然考え付かなくなってしまったので断念。

この記事が気に入ったら
『いいね』しよう!