ワードプレスのhas_custom_logo関数の使用方法・解説

概要

has_custom_logo関数は、WordPressのテーマにおいてカスタムロゴが設定されているか調べるために使用されます。これにより、ユーザーはテーマのビジュアル要素をより一層カスタマイズすることができ、ブランドの認知度を向上させることができます。カスタムロゴが設定されているかどうかをチェックすることは、以下のような機能実装に役立ちます。

  1. テーマのヘッダー部分にカスタムロゴを表示する
  2. ロゴがない場合の代替画像を設定する
  3. カスタムロゴを使用した場合のスタイル調整
  4. モバイル版でのロゴ表示の有無を確認する
  5. ユーザーがアップロードしたロゴを判別する
  6. テーマオプションでのロゴ設定を確認する
  7. カスタムロゴを持つ比較のためにデフォルトロゴを設定する
  8. ロゴが設定されていない場合の警告を表示する

構文

has_custom_logo();

パラメータ

この関数はパラメータを受け取りません。

戻り値

  • true または false
    • true: カスタムロゴが設定されている場合
    • false: カスタムロゴが設定されていない場合

関連する関数

使用可能なバージョン

  • WordPress 4.5以降

コアファイルのパス

  • wp-includes/general-template.php

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード 1: カスタムロゴをチェックして表示する

if ( has_custom_logo() ) {
    the_custom_logo();
} else {
    echo '<h1>デフォルトロゴ</h1>';
}

このサンプルコードは、カスタムロゴが設定されているかをチェックし、存在する場合はそのロゴを表示し、存在しない場合はデフォルトのロゴタイトルを表示します。

サンプルコード 2: カスタムロゴの有無を利用した条件分岐

if ( has_custom_logo() ) {
    // カスタムロゴが設定されている場合の処理
    echo 'カスタムロゴがあります!';
} else {
    // カスタムロゴが設定されていない場合の処理
    echo 'カスタムロゴは設定されていません。';
}

このサンプルは、カスタムロゴの有無に応じて異なるメッセージを表示しています。

サンプルコード 3: CSSスタイルを適用する際のチェック

if ( has_custom_logo() ) {
    echo '<style>.header-logo { display: block; }</style>';
} else {
    echo '<style>.header-logo { display: none; }</style>';
}

このサンプルコードは、カスタムロゴの有無によって異なるCSSスタイルを適用します。

サンプルコード 4: カスタムロゴのURLを取得する

if ( has_custom_logo() ) {
    $custom_logo_id = get_theme_mod( 'custom_logo' );
    $logo = wp_get_attachment_image_src( $custom_logo_id , 'full' );
    echo '<img src="' . esc_url( $logo[0] ) . '" alt="ロゴ">';
}

このコードは、カスタムロゴが設定されている場合、その画像のURLを取得して表示します。

サンプルコード 5: カスタムロゴがない時の代替テキストを表示

if ( has_custom_logo() ) {
    the_custom_logo();
} else {
    echo '<img src="default-logo.png" alt="デフォルトロゴ">';
}

このサンプルは、カスタムロゴが設定されていない場合に代わりの画像を表示します。

この関数について質問する


上の計算式の答えを入力してください