概要
site_icon_urlフィルタは、WordPressサイトのアイコン(ファビコン)のURLを表示するために使用されます。このフィルタを使用することで、デフォルトのアイコンを置き換えたり、アイコンを動的に変更したりすることができます。また、以下のような実装時によく使われる機能があります。
- サイトアイコンの表示変更
- アイコンURLの条件付き切り替え
- カスタムアイコンの追加
- プラグインによるアイコン変更
- アイコンのページごとの異なる表示
- 多言語サイトでのアイコン切り替え
- テーマごとのアイコン変更
- スペシャルなイベントやキャンペーン用のアイコン変更
構文
apply_filters( 'site_icon_url', string $site_icon_url );
パラメータ
$site_icon_url: 現在のサイトアイコンのURL(文字列)。
戻り値
- フィルタリング後のサイトアイコンのURL(文字列)。
関連する関数
このフィルタに関連する関数はこちらです。
使用可能なバージョン
site_icon_urlフィルタは、WordPress 4.3.0以降で使用可能です。
コアファイルのパス
このフィルタは、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 | 〇 |
サンプルコード
以下に、site_icon_urlフィルタを使用したサンプルコードをいくつか紹介します。
サンプルコード1: デフォルトアイコンをカスタムアイコンに変更
add_filter('site_icon_url', function($url) {
return 'https://example.com/path/to/custom-icon.ico';
});
このコードは、サイトのデフォルトアイコンのURLを指定されたカスタムアイコンのURLに変更します。
サンプルコード2: サイトアイコンを動的に変更
add_filter('site_icon_url', function($url) {
if (is_single()) {
return 'https://example.com/path/to/post-icon.ico';
}
return $url;
});
このコードは、個別の投稿ページにアクセスしたときにサイトアイコンを投稿専用のアイコンに変更します。
サンプルコード3: 言語に応じてアイコンを変更
add_filter('site_icon_url', function($url) {
if (get_locale() == 'ja') {
return 'https://example.com/path/to/japanese-icon.ico';
}
return $url;
});
このコードは、サイトの言語に応じて異なるアイコンを表示します。
サンプルコード4: 特定の条件に基づくアイコンの変更
add_filter('site_icon_url', function($url) {
if (is_page('contact')) {
return 'https://example.com/path/to/contact-icon.ico';
}
return $url;
});
このコードは、特定のページ(この場合は「contact」ページ)にアクセスしたときに異なるアイコンを表示します。
サンプルコード5: プラグインまたはテーマがアイコンを変更するためのフック
function my_custom_site_icon($url) {
if (is_user_logged_in()) {
return 'https://example.com/path/to/user-icon.ico';
}
return $url;
}
add_filter('site_icon_url', 'my_custom_site_icon');
このコードは、ユーザーがログインしている場合に異なるアイコンを表示します。