web-dev-qa-db-ja.com

カスタム分類法の用語に応じてスタイルシートを変更する

私のクライアントは、カスタム分類法「Grades」内の用語に応じて背景色とヘッダー色を切り替えたいと考えています。これらの用語は幼稚園、小学校1年生、2年生などなど(すべて12年生まで)であり、カスタム投稿タイプ「プロジェクト」に関連付けられています。

私は「成績」の各用語がそれ自身のページを持つようにメニューを設定しました。これらは、ダッシュボードに表示される実際のページではありません。これらのページは各学年に固有の単なるアーカイブタイプのページです。

ページ名に応じてスタイルシートを文脈上変更することに関する素晴らしいブログ記事を見つけました( http://justintadlock.com/archives/2009/07/27/contextually-changing-your-themes-stylesheet )私のphpの理解は少し限られていて、私はこのコードを編集する方法を理解することができないので、ページの名前のためにスタイルシートを切り替える代わりに、それはカスタム分類学「グレード」内の一連の用語によって引き起こされます。

カスタム分類法のアーカイブページでスタイルシートを切り替えたい。切り替えは、カスタム分類法の用語によって引き起こされるべきです。 IE:幼稚園のページは実際にはカスタム分類法の「学年」の「幼稚園」のアーカイブページです。私は「学年」に関連付けられている13の用語> 1年生、2年生、3年生など...

IE:背景画像と見出しの色を変えたいのですが。幼稚園、小学校1年生、2年生、3年生のための緑…6年生、7年生、8年生のためのオレンジ…9年生、10年生の等のための紫色….

アーカイブページと分類法でのみ機能する解決策を見つけました: is_tax 関数。

add_filter( 'stylesheet_uri', 'my_stylesheet', 10, 2 );

関数my_stylesheet($ stylesheet_uri、$ stylesheet_dir_uri){

if ( is_tax( 'grades', array('term_name' => 'Kindergarten', 'First Grade', 'Second Grade', 'Third Grade', 'Fourth Grade', 'Fifth Grade' ) ))
    $stylesheet_uri = $stylesheet_dir_uri . '/style-elemen.css';
elseif ( is_tax( 'grades', array('term_name' => 'Sixth Grade', 'Seventh Grade', 'Eighth Grade' ) ))
    $stylesheet_uri = $stylesheet_dir_uri . '/style-elemen.css';

return $stylesheet_uri;

}

1
Kathy

Justin Tadlock があなたの 参照記事 で言うように、body_class()は以下を提供します。用語の種類に応じてクラスを追加する機能。あなたがあなたのphpの知識がまだ成長していることを示しているとすれば。これはおそらく最善の解決策です。

コーデックスは、有効なbody_classのクラスのリストを提供します。

http://codex.wordpress.org/Function_Reference/body_class

それでも十分ではない場合wordpressには、スクリプト/スタイルを読み込むための優れたスクリプト/スタイルローダー関数 wp_enqueue_script があります。

<?php 

/** 
* The following would be a good method for controlling style loading
*/  

if (is_category( $category ) ) {  
    wp_enqueue_script('myscript'); 
}

また、 WPA.SE には、 wp_enqueue_scriptの例と質問 があります。

2
chrisjlee