web-dev-qa-db-ja.com

親テーマによって追加されたクラスを削除します

私の親テーマはbodyで次のクラスを生成します:style-cupcake。私はそれが欲しくありません。これを解決する最善の方法は、自分の子テーマのfunctions.phpファイルに自分の関数を追加することです。

私はこれを試した(私がWPSEで見つけた解決策)が、うまくいかないようだ。 「カスタム背景」は削除されましたが、スタイルカップケーキは持続します。

<?php

function my_body_class( $wp_classes, $extra_classes )
{
    // List of the only WP generated classes that are not allowed
    $blacklist = array('custom-background', 'style-cupcake');
    // Blacklist result: (uncomment if you want to blacklist classes)
    $wp_classes = array_diff( $wp_classes, $blacklist );

    // Add the extra classes back untouched
    return array_merge( $wp_classes, (array) $extra_classes );
}
add_filter( 'body_class', 'my_body_class', 10, 2 );

?>

何か案が?

1
Bram Vanroy

他の関数がフィルタ処理したのと同じコンテンツにフィルタを適用したい場合は、優先度引数(_execution_order_という名前)をより大きな数に変更します。

そう …

add_filter( 'body_class', 'my_body_class', 11, 2 );

…10で登録されているmy_body_class()の後にanother_body_class()が呼び出されることを確認します。

add_filter( 'body_class', 'another_body_class', 10, 2 );

また、優先順位が配列キーとして使用されることにも注意してください。数字である必要はなく、ただ有効なキーである必要はありません。

// this works!
add_filter( 'body_class', 'my_body_class', 'very late please', 2 );
add_filter( 'body_class', 'my_body_class', PHP_INT_MAX, 2 );
2
fuxia