MENU

atom_site_icon()

atom_site_icon() は、WordPress の Atom フィードにサイトアイコン(ファビコン)の情報を <icon> 要素として出力するテンプレートタグです。

Atom フィード購読者が視覚的にサイトを識別しやすくなるように、フィードにアイコン URL を挿入します。主に atom_head アクションフックの中で使用され、サイトのブランディング向上に役立ちます。

目次

機能の説明

どんなテンプレートタグ?

  • Atom フィード用の <icon> 要素を出力します。
  • WordPress の「サイトアイコン」機能(site_icon_url())と連携しています。
  • 通常は wp-includes/feed-atom.php に含まれており、自動的に呼び出されます。

どんな時に使う?

  • Atom フィードの <icon> 要素を明示的に制御したい時
  • テーマやプラグインでカスタム Atom フィードを生成する時

シンプルなコード例

<?php atom_site_icon(); ?>

出力される XML(例)

<icon>https://example.com/wp-content/uploads/2024/01/favicon.png</icon>

サイトに設定された「サイトアイコン」が自動で使われます。

使い方の説明

引数

なし(内部的に get_site_icon_url() を呼び出す)

実際のソース例(カスタム Atom テンプレート内で)

<?php
header( 'Content-Type: application/atom+xml; charset=' . get_option( 'blog_charset' ), true );
echo '<?xml version="1.0" encoding="' . get_option( 'blog_charset' ) . '"?' . '>';
?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title><?php bloginfo_rss('name'); ?></title>
  <icon><?php atom_site_icon(); ?></icon>
  <!-- 他のフィード情報 -->
</feed>

一緒に使うことが多い関連タグ

get_site_icon_url()

$url = get_site_icon_url();
echo '<icon>' . esc_url( $url ) . '</icon>';

atom_site_icon() の内部でも使用されている関数。URLだけ取得したい場合に便利。

bloginfo_rss('name'), bloginfo_rss('url')

<title><?php bloginfo_rss('name'); ?></title>
<link><?php bloginfo_rss('url'); ?></link>

Atom フィードの基本情報を出力するタグ。atom_site_icon() と併用される。

追加情報で取得したい場合

カスタムアイコンを強制的に指定したい場合

echo '<icon>' . esc_url( 'https://example.com/custom-icon.png' ) . '</icon>';

デフォルトの atom_site_icon() を使わずに、任意の URL を指定したいケースで使用。

このテンプレートタグを利用してのカスタマイズ

サイトにアイコンが未設定の場合はデフォルトアイコンにフォールバック

$url = get_site_icon_url();
if ( ! $url ) {
  $url = 'https://example.com/default-icon.png';
}
echo '<icon>' . esc_url( $url ) . '</icon>';

サイトアイコンが設定されていない場合でも、フィードに常に <icon> を出力するカスタマイズ。

想定されるトラブル

出力されない・空になる

atom_site_icon() を使用しても <icon> 要素が出力されない。

解決方法

  • 管理画面 → 外観 → カスタマイズ → サイト基本情報 → サイトアイコンが未設定である可能性。
  • get_site_icon_url() の戻り値が false か確認。
  • アイコン画像の MIME タイプが適切でない場合や削除済みファイルが指定されている場合も注意。

Q&A

RSS2 フィードでは使えないの?

atom_site_icon() は Atom フィード専用です。RSS2 では <image> 要素や rss_enclosure() を利用します。

サイトアイコンはどこで設定する?

WordPress管理画面の「外観 → カスタマイズ → サイト基本情報」から設定可能です。

アイコンを出力せずに非表示にする方法は?

remove_action( 'atom_head', 'atom_site_icon' ); を使用すれば非表示にできます。

まとめ

  • atom_site_icon() は Atom フィード用にサイトアイコンを <icon> タグで出力するテンプレートタグ。
  • WordPressに設定されているサイトアイコンを自動的に取得し、視覚的なブランディング強化に役立つ。
  • get_site_icon_url() と連携しており、カスタム出力も可能。
  • Atom フィードで独自のテンプレートを作成する場合に便利。
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次