オリジナルのファビコンをきちんと設定したのに、PDFファイルへのリンクを開いたときだけ、WordPressのデフォルトのファビコンが表示されてしまう——地味に気になるポイントです。
結論から言うと、favicon.icoというファイルをサイトのルートディレクトリに設置するだけで、PDFファイルのリンクにもオリジナルのファビコンが表示されるようになります。この記事では、なぜPDFだけファビコンが変わってしまうのかという理由と、その解決法を解説します。
WordPressで設定するファビコン(サイトアイコン)は、各ページのHTMLの<head>内に<link rel="icon">という形で読み込まれています。ブラウザはこの記述を見て、「このページのファビコンはこれ」と表示しています。
ところが、PDFファイルはHTMLを介さず、ファイルそのものが直接ブラウザに表示されます。つまり、ファビコンを指定する<head>や<link>が存在しません。指定がないと、ブラウザは昔ながらの決まりに従い、サイトのルートにあるfavicon.icoを探して表示しようとします。
ルートにfavicon.icoがないと、ブラウザはファビコンを見つけられず、デフォルトのアイコン(環境によってはWordPress関連のもの)が表示されてしまう、というわけです。原因は「PDFにはファビコンの指定がなく、ルートのfavicon.icoも置かれていない」ことにあります。
解決はシンプルです。favicon.icoという名前のファビコンファイルを用意し、サイトのルートディレクトリ(トップの階層)に設置するだけです。
これで、ブラウザがファビコンの指定を見つけられなかったとき(=PDFを直接開いたときなど)でも、ルートのfavicon.icoが使われるようになり、オリジナルのファビコンが表示されます。HTMLページ側はこれまでどおりWordPressの設定が使われるため、サイト全体でファビコンが統一されます。
この挙動はPDFに限りません。画像ファイルやテキストファイルなど、HTMLを介さず直接ブラウザに表示されるファイル全般で、同じように<link>による指定が効かず、ルートのfavicon.icoが参照されます。ルートに1つ置いておけば、これらすべてをまとめてカバーできるわけです。
補足として、WordPressの「サイトアイコン」機能で設定したファビコンは各ページに自動で読み込まれますが、これはあくまでHTMLページ向けの仕組みです。ルートのfavicon.icoを別途置いておくことで、HTMLページと直接表示されるファイルの両方をカバーできる、と考えると分かりやすいでしょう。
favicon.icoは、.ico形式のアイコンファイルです。手元にあるロゴやアイコンの画像(PNGなど)から、ファビコン作成用のWebサービスやツールでICO形式に変換して用意します。サイズは16×16や32×32ピクセルなどが一般的です。
作成したfavicon.icoを、FTPソフトやサーバーのファイルマネージャーでルートディレクトリにアップロードすれば完了です。反映されないときは、ブラウザのキャッシュが残っている場合があるので、キャッシュを削除してから再度確認してみてください。
<link>)が効かないfavicon.icoを探すfavicon.icoをルートディレクトリに置けば、PDFリンクでもオリジナルのファビコンが表示される細かい部分ですが、こうした一貫性はサイトの完成度に効いてきます。ファビコンを設定したら、あわせてルートにfavicon.icoも置いておくと安心です。