テンプレート階層に応じたスタイルシートを出力する方法です。index.php では index.css, category-news.php では category-news.css といったふうに、テンプレート毎にスタイルシートを変えることができます。
グローバル変数を取得してごにょごにょする、という力技です。(ソースコードはgist でも入手できます)
add_action('wp_head','page_template_css') ; // Copyright : Fumito MIZUNO http://php-web.net/ // License : GPL ver.2 or later function page_template_css() { global $template; $dir = '/css'; // (テーマ配下の)スタイルシートを入れるディレクトリを設定する $pos = strrpos($template, "/"); $template = substr($template, $pos); $filename = str_replace('php', 'css', $template); $fullfilename = get_stylesheet_directory() . $dir . $filename; if (file_exists($fullfilename)) { print '<link rel="stylesheet" type="text/css" href="' . get_stylesheet_directory_uri() . $dir . $filename . '" />'; print "n"; } }
WordPress には、テンプレート階層という便利な機能があります。これによって、このページにはこのテンプレート、あのページにはあのテンプレート、といったことができます。とはいえ、header.php はほぼ共通というけーすもあるでしょう。そういう場合、このコードを functions.php に書くと、header.php にテンプレート階層毎に異なる CSS を追加してくれます。
テンプレート階層自体は、PHP ファイルの有無で決まります。このため、問い合わせの固定ページテンプレートが page.php だが CSS は page-inquiry.css という使い方には対応していません。 page.php なら page.css が読み込みされます。
なおテーマによっては動作しないかもしれませんのでご注意ください。