ループについて|WordPressテーマの作り方
ページ送りがデフォルトだったり、サイドバーが一切なかったりしてますが、テーマを利用し始めました。使いながら少しつ良くしていきたいなと思います。 あと、はてなブログからgithub.ioへ引っ越しました。VCCW+StaticPress+github.ioの組み合わせで無料ホスティング。 さてタイトルの件ですが、今現在ほとんどのページでアイキャッチを設定していません。イコール、インデックス系のページにはサムネイルがありません。大事なのは理解しているのですが、正直若干面倒だな…と思うんですよね。 このテーマのヘッダーデザインはそういう理由だったりもします。この作りなら忘れてしまってもカッコつくかなと。 とは言え、カテゴリとかタグのページにはどうしても必要ですし、これまで設定してこなかった分を一つ一つ設定するよりアイキャッチ画像のデフォルト設定をしてしまった方が勉強にもなるし一石二鳥だ!というわけでアイキャッチにデフォルト設定をかけていきます。 WordPressのアイキャッチ画像に任意のデフォルト画像を登録する方法 デフォルト画像はこちらを設定します。まずは任意の画像をアップ。全投稿を更新します。 before after まず、フックになっているpost_saveですが、Codexによると インポート機能の利用、投稿・ページ編集フォームの利用、XMLRPCでの投稿、メールでの投稿のうちいずれかの方法で投稿・ページが作成・更新された際に実行する。実行されるタイミングはデータがデータベースに保存された後。アクション関数引数: 投稿 ID投稿 ID は最後に保存した投稿ではなく投稿履歴を参照していることもある。実際の投稿の ID を取得するには、[[関数リファレンス/wp_is_post_revision()]] を使う。 とのこと。要は何かしら投稿が保存されたタイミングで何かしたいときにどうぞーということですね。で、引数にはpost_idが渡されるので、保存が行われた投稿に対してのみの動作になると。なるほど。 実際の処理の流れは、 と。post_meta系は色々と使い道がありそうですね。以上、デフォルトのアイキャッチを設定する方法でした。
若干手間は増えますが、そのあたりの自動化も課題としてやっていきたいなと思います。特定の画像をデフォルト画像としてアイキャッチに設定する方法
add_action( 'save_post', 'save_default_thumbnail' );
function save_default_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 ) ) {
update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = '56' );
}
}
}
WordPressのアイキャッチ画像に任意のデフォルト画像を登録する方法をご紹介します。クライアントワークでも使えると思います。−kachibito.netさまより引用実行結果
無事、期待通りの結果になりました!続いてなぜこうなるのか?を追っていきます。コードの仕組み