web-dev-qa-db-ja.com

カスタムメニューのマークアップからクラス属性を削除する方法

私のテーマに「カスタムメニュー」のサポートを追加して遊んでいるだけです。とても興奮しています。

しかしながら、

これをチェックしてください>

<ul id="menu-my-main-menu" class="menu">
  <li id="menu-item-12" 
      class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-home menu-item-12">
      <a href="http://localhost/bizsite">Home</a>
  </li>
</ul>

「クラスイタス」の最悪の例私は今まで見たことがあると思います。これは「私」が意図せずに行ったことなのか、それともこれがデフォルトですか。

これらのメニューのクラス属性を制御または削除するにはどうすればよいですか?

1
Scott B

nav_menu_css_classフィルタを使用して、メニュー項目から必要なクラスを削除できます。

以下の例を参照して、メニュー項目に追加されているすべてのCSSクラスを削除してください。

add_filter('nav_menu_css_class','remove_nav_menu_classes');
function remove_nav_menu_classes($classes) {
    return array(); 
}

メニューでどのクラスがアクティブかを知りたい場合はprint_r($classes)を実行してください。

5
keatch