ある子テーマにオリジナルのCSSファイルをUPし、限定したページのみにファイルを読み込むという仕組みを作っていました。

それは、tableやdl、ulなどのタグはテーマのCSSに装飾されておらず、軽量CSSフレームワークを利用すればレスポンシブ対応にも対応しているので便利。

まずはheadタグにlinkタグを追加する仕組みをfunction.phpに以下のように組み込みました。

 

function head_add_css() {
/* オリジナルCSSファイルを出力 */
echo "<link rel='stylesheet' href='".get_bloginfo("template_url")."/custom.css' media='all' />";
}
add_action( 'wp_head', 'head_add_css');

 

ブラウザで出力しているか確認してみると、適用されていませんでした。出力はしているんですけどね・・・とhrefの中身を確認したら、なんと親テーマのディレクトリを出力していました。

get_bloginfo()でtemplate_urlを指定すると、子テーマではなく、親テーマを出すんですね。

で、他の関数を調べると、get_theme_file_uri() で大丈夫なんだそう。ちなみに、get_stylesheet_directory_uri() でも大丈夫なんだとか。

結果、ひとまずは以下の方法でfunction.phpの設定は終了としました。

function head_add_css() {
  if(is_page( Page ID )) {
    /* オリジナルCSSファイルを出力 */
    echo "<link rel='stylesheet' href='".get_theme_file_uri()."/custom.css' media='all' />";
  }
}
add_action( 'wp_head', 'head_add_css');