概要
has_site_icon
フィルタは、サイトアイコンが設定済みか調べるための機能を提供します。このフィルタは、WordPressサイトでサイトアイコンの有無を確認したり、表示内容を変更したりするために一般的に使用されます。デフォルトでは、テーマやプラグインによってサイトアイコンを管理するために利用されます。このフィルタは、サイトアイコンの状態に基づいて特定のロジックを追加する際に便利です。
よく使われる機能の例は以下の通りです。
- サイトアイコンの存在チェック
- アイコンが設定されていない場合のデフォルトアイコンの表示
- 特定の条件下でアイコンの変更
- カスタム設定によるアイコンの条件付き表示
- テーマオプションからのアイコン管理
- プラグインによるアイコンの動的変更
- アイコンに基づくCSSクラスの追加
- ユーザーがアイコンをアップロードするUIのカスタマイズ
構文
apply_filters( 'has_site_icon', $bool );
パラメータ
$bool
(bool): サイトアイコンが設定されている場合はtrue
、そうでない場合はfalse
。
戻り値
- (bool): サイトアイコンが存在する場合は
true
、存在しない場合はfalse
。
関連する関数
使用可能なバージョン
このフィルタはWordPress 4.3以降で使用可能です。
コアファイルのパス
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: サイトアイコンの確認
このサンプルは、サイトアイコンが設定されているかどうかを確認し、メッセージを出力します。
add_filter( 'has_site_icon', function( $has_icon ) {
if ( $has_icon ) {
echo 'サイトアイコンが設定されています。';
} else {
echo 'サイトアイコンは設定されていません。';
}
return $has_icon;
});
引用元: https://developer.wordpress.org/reference/hooks/has_site_icon/
サンプルコード2: デフォルトアイコンの表示
サイトアイコンがない場合にデフォルトアイコンを表示する事例。
add_filter( 'has_site_icon', function( $has_icon ) {
if ( !$has_icon ) {
// ここにデフォルトアイコンの HTML を追加
echo '<link rel="icon" href="/path/to/default-icon.png" />';
}
return $has_icon;
});
引用元: https://developer.wordpress.org/reference/hooks/has_site_icon/
サンプルコード3: アイコンURLのカスタマイズ
サイトアイコンがある場合、特定の条件下でアイコンURLを変更する例。
add_filter( 'has_site_icon', function( $has_icon ) {
if ( $has_icon && is_user_logged_in() ) {
// ユーザーがログインしているならアイコンURLを変更
return '<link rel="icon" href="/path/to/custom-icon.png" />';
}
return $has_icon;
});
引用元: https://developer.wordpress.org/reference/hooks/has_site_icon/
サンプルコード4: サイトアイコンのCSSクラス追加
サイトアイコンの存在に基づいてCSSクラスを追加する例。
add_filter( 'has_site_icon', function( $has_icon ) {
if ( $has_icon ) {
echo '<style>.has-icon { background-color: green; }</style>';
} else {
echo '<style>.no-icon { background-color: red; }</style>';
}
return $has_icon;
});
引用元: https://developer.wordpress.org/reference/hooks/has_site_icon/
サンプルコード5: サイトアイコンのUI変更
管理画面でのサイトアイコンのアップロードUIをカスタマイズする例。
add_filter( 'has_site_icon', function( $has_icon ) {
if ( !$has_icon ) {
echo '<p>サイトアイコンが設定されていません。<a href="'. admin_url('customize.php') .'">カスタマイズする</a>。</p>';
}
return $has_icon;
});
引用元: https://developer.wordpress.org/reference/hooks/has_site_icon/