トピック投稿者
yuru
(@yuru)
nobitaさま
Home
↑参考にさせていただいたのですが、使い方を調べてもわかりませんでした。
もう少し、勉強してみます。
こんにちわ、yuruさん。
一応以下ソースコードで動いてはいます。
使用中のテーマの functions.php に追加してみてください。
/**
* Filter the ID applied to a menu item's list item element.
*
* @since 3.0.1
* @since 4.1.0 The <code>$depth</code> parameter was added.
*
* @param string $menu_id The ID that is applied to the menu item's <code><li></code> element.
* @param object $item The current menu item.
* @param array $args An array of {@see wp_nav_menu()} arguments.
* @param int $depth Depth of menu item. Used for padding.
*/
function change_menu_item_id( $menu_id, $item, $args, $depth ) {
if ( 'taxonomy' === $item->type ) {
$url = parse_url( $item->url );
$path = pathinfo( $url['path'] );
$menu_id = preg_replace( '/\A(menu-item-)([0-9]+)\z/', '$1' . $path['filename'], $menu_id );
}
return $menu_id;
}
add_filter( 'nav_menu_item_id', 'change_menu_item_id', 10, 4 );
nav_menu_item_id というフィルターフックは /wp-includes/nav-menu-template.php
の 112行目辺りにあります。
何をしているのはか、/wp-includes/nav-menu-template.php
をご確認ください。
また、/wp-includes/nav-menu-template.php
はコアファイルですので、絶対に書き換えたりしないでください。
また、li のクラス名を書き換えたい場合は、nav_menu_css_class というフィルターフックで書き換えが可能です。nav_menu_css_class も /wp-includes/nav-menu-template.php
にありますので、詳細は /wp-includes/nav-menu-template.php
をご確認ください。
トピック投稿者
yuru
(@yuru)
KUCKLUさま
時間はかかりましたが、ソースを読解して何とか思い通りに表示できました。
ありがとうございました。