2011-07-10 11 views
1
add_filter('body_class','cp_new_body_classes'); 
function cp_new_body_classes($classes) { 
    if(!is_page_template()) { 
     $classes[] = 'reg-page'; 
    return $classes; 
    } 
} 

私はページテンプレートではないページにreg-pageのクラスを追加しようとしています。 ページテンプレートのページについては、デフォルトのWordPressクラスを残したいだけです。上記のコードを試してみると、ページテンプレートではなく他のページ(のページテンプレート)がクラスなしで残ってしまうように、reg-pageのクラスが追加されます。このコードを修正するにはどうしたらいいですか?ボディクラスを追加する

答えて

1

現在、指定されたURLがページに対応しない場合、関数によって何も返されません。 WordPressはすでに評価しているクラスをあなたに渡しています。nullを返すことで、それらのすべてを忘れてしまいます。条件が満たされなくてもreturn $classesを修正します。

add_filter('body_class','cp_new_body_classes'); 
function cp_new_body_classes($classes) { 
    if(!is_page_template()) 
     $classes[] = 'reg-page'; 

    return $classes; 
} 
+0

ああ、わかります。どうもありがとうございました! – SamY

+0

申し訳ありません、ただの簡単な質問です。私は "if(!is_page_template()||!is_home())'のように "ホームページか"を追加しようとしていますが、 'reg-page'クラスはすべてのページに追加されます。私は間違って何をしていますか? – SamY

+0

'reg-page'をサイトのすべての部分だけでなくページやホームに表示したいですか?それはうまくいくはずです。 'if(!(is_page_template()|| is_home()))'あなたの意図を正しく理解していますか? –

関連する問題