フィルターフックnav_menu_css_classを使用してwp_nav_menuにカスタムクラスを追加する


8

ワードプレスのテーマにカスタム投稿タイプがあります。そのカスタム投稿タイプで作成されたページのナビゲーションメニューにカスタムクラスを追加したいと思います。フィルターフック "nav_menu_css_class"を使用できると読みましたが、私のphpチョップはかなり制限されています。ナビゲーションメニューのカスタム投稿タイプページにのみ適用するようにそのフィルターフックを設定し、カスタムクラスを与えるにはどうすればよいですか?

回答:


8

これは簡単な例です:

add_filter('nav_menu_css_class', 'auto_custom_type_class', 10, 2 );
function auto_custom_type_class($classes, $item) {

    if ($item->type_label == "CUSTOM_TYPE_NAME"){
        $classes[] = "New_Class";
    }

    return $classes;
}

CUSTOM_TYPE_NAMEカスタム投稿タイプNew_Classの名前とクラスの名前に変更し、このスニペットをテーマのfunctions.phpファイルに貼り付けます。


うまくいきます。感謝します!
コリン

お役に立てて嬉しいです。
Bainternet、2011年

別の質問:$item->type_labelこれはどこから来て、この変数「$ item」に適用できる他のことはありますか?
コリン

1
$ itemオブジェクトは、apply_filters呼び出しによって渡され、すべての項目変数を保持します。関数のどこかに追加することでリストを取得できますvar_dump($item);
Bainternet

わあ、甘い!(実行しただけ)知っておくと便利です。再度、感謝します。
コリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.