web-dev-qa-db-ja.com

nav-menu-template.phpをカスタマイズするための最良の方法はどれですか?

start_elの関数nav-menu-template.php$item->ID$item->titleに置き換えて、メニューのhtml li要素がより読みやすいクラス名になるようにしました。詳しくは、私は行を変更しました

$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args );

$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->title, $item, $args );

これにより、テーマ用のstyle.cssファイルの編集が容易になります。私はWPバージョンをアップグレードするたびにファイルを修正することを強制されないように、nav-menu-template.phpからテーマへの変更(おそらくfunctions.php?)を "転送"することが可能であるかどうか疑問に思います。

1
Toc

以下をfunctions.phpに追加するだけです。

add_filters( 'nav_menu_item_id', 'wpse64308_nav_menu_item_id',10,3);
function wpse64308_nav_menu_item_id( $id, $item, $args){
    return 'menu-item-'.$item->title;
}
2
Stephen Harris