WordPressとOpen Sans

WordPressのブログ表示画面にフォントとしてOpen Sansを読み込もうとした時につまづいたことです。Google Fontsからフォントを読み込んだのですが、非ログイン時は適用されないのに、ログイン時には適用されているという現象に遭遇しました。結論を書くと、単に指定したURLの指定ミスだったのですが、原因の切り分けで戸惑ったため、その記録を残します。

Open sansへのlink
ログイン中に挿入されるOpen Sansへのlink

Open Sansをウェブフォントとして読み込もうとしている場合について考えます。WordPressは、バージョン4.5.2の現在、管理画面やAdminバーにそもそもOpen Sansを使用しており、自動でlinkタグが挿入されます。ですので、特にログイン中の場合は、自分が挿入しようとしているOpen Sansの読み込みに失敗していたとしても、Open Sansが正しく表示される状態になります。当然、ログアウトすれば、Oen Sansは表示されないということになります。テーマをカスタマイズしている際は、ログインしたままであることが多いと思いますので、WordPressが自動でOpen Sansを読み込むということを忘れていると後で戸惑うことになります。

URLやwp_enqueue_styleなどの関数の呼び出しに不備がなければ、この現象に遭遇することはないでしょう。

# functions.phpなどにおいて、アクションフックを用いてフォントのスタイルをenqueueする例
function _my_theme_scripts()
{
    wp_enqueue_style( 'open-sans', 'https://fonts.googleapis.com/css?family=Open+Sans%3A300italic%2C400italic%2C600italic%2C300%2C400%2C600&subset=latin%2Clatin-ext', array() );
}
add_action( 'wp_enqueue_scripts', '_my_theme_scripts' );