WordPressの投稿にアイキャッチ画像がない場合の対処法

WordPress
記事内に広告が含まれていることがあります。

WordPressで自作テーマを作成しているときに、投稿ページの右カラムに「アイキャッチ画像」が表示がない!?そんなときの対処法について。超簡単で1分で解決します。

↑本来あるべき場所に「アイキャッチ画像」がない、、、

「アイキャッチ画像」の項目を追加する方法

WordPressでアイキャッチ画像の機能がそもそも有効化されていないので、これを有効化する。

html > wp-content > themes > テーマ名 の中にある functions.php に以下コードを追記する。

<?php

function custom_theme_setup() {
    add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'custom_theme_setup' );

以上で完了。セーブしてリロードすると「アイキャッチ画像」が追加される。

なお、関数名 custom_theme_setup() は任意。末尾の行はadd actionフックを使ってテーマが読み込まれた最初のタイミングで指定した関数をロードしている。詳しくは後述。

functions.phpをWordpressのエディタ上で編集する場合は、 外観 > テーマエディタ > テーマのための関数(functions.php)を選択し追記する。

下部の「ファイルを更新」をクリックすれば完了。

「アイキャッチ画像」の項目を非表示にする

右カラムの「アイキャッチ画像」の項目を後から表示・非表示に切り替えることも可能。

右上の3点をクリックし、「設定」→「パネル」→「アイキャッチ画像」でON/OFFを切り替える。

再度、サイドバーを表示すると、「アイキャッチ画像」の項目が消えている。

表示したければ、ONに変更すればOK。

add_theme_support()関数とadd_actionフックとは?

add_theme_support()関数とは?

add_theme_support()はデフォルトで容易されているテーマ機能をサポートする関数(Basic theme support function)。

引数に特定の文字列を渡すことで、指定した機能を有効化する。引数で ‘post-thumbnails’ を指定すると「アイキャッチ画像」機能が有効化する。

functions.phpに add_theme_support( ‘post-thumbnails’ ); のみを記述するだけでも機能するが、add_actionフックのafter_setup_themeを使って、テーマ読み込みタイミングでロードするようにすることが推奨。

<?php

function custom_theme_setup() {
    add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'custom_theme_setup' );

add_actionフックとは?

add_actionフックは特定のタイミングで指定した関数を実行するための関数。フックはきっかけぐらいの意味。使い方は以下。

add_action( $hook, $function_to_add, $priority, $accepted_args );

▼引数の説明

  • $hook – [必須]どこのタイミングで実行するかを指定する。アクションフック名は プラグイン API/アクションフック一覧 を参照。
  • $function_to_add – [必須]実行する関数名を指定。
  • $priority – [オプション]指定したフックに紐付いている関数の実行優先順位を指定する。デフォルトは10で数値が小さいほど優先度が高い。
  • $accepted_args – [オプション]フックした関数が受け入れる引数の数を指定する。

基本的には、必須項目の $hook, $function_to_add の2つを指定する。

▼主なアクションフックと実行順序

優先度フック名機能
1★after_setup_themefunction.phpで一番最初に実行されるフック
2registered_post_type投稿、固定ページなどを登録する時。カスタム投稿タイプを作る時
3registered_taxonomyカテゴリー、post_tagなどを登録する時
4★initログインユーザーの情報取得後
5wp_loadedWordPress が完全に読み込まれた後
6parse_requestリクエスト処理を投げる前
7send_headersヘッダーを変更できるようにする 
8parse_queryクエリ変数が設定された後
9★pre_get_postsSQLクエリを投げる直前に実行する。
10the_postsクエリの直後に投稿オブジェクトを変更できるようにする
11wpWP オブジェクトが設定された後 
12★template_redirectページが表示される最初のタイミング。特定のページを404やリダイレクト設定する時。
13★wp_enqueue_styleCSSファイルを読み込む。wp_headよりも推奨。
14★wp_enqueue_scriptsJavaScriptファイルをを読み込む。wp_headよりも推奨
15wp_headheadタグ内において、wp_head() 関数を呼び出したとき
16wp_footerbody閉じタグ直前でwp_footer()関数が呼び出したとき
17shutdownPHPの実行が終わる直前

★は使用頻度が高いもの

つまり、add_action( ‘after_setup_theme’, ‘custom_theme_setup’ ); は、functions.phpが最初に読み込まれたタイミングで、custom_theme_setup関数を実行するという意味。

参考リンク

add_theme_support
プラグイン_API/アクションフック一覧

タイトルとURLをコピーしました