WordPressのphp部分の質問です。
-
以下のコードは、フィルターフックを使い、apt_slug_navというユーザー定義関数で、グローバルナビゲーションにhtmlのクラスを付けるということを行っています。
質問です。
function.phpの if ($item->object == ‘page’)のところで、$item->objectの部分はクラス(phpの方の)を呼び出していると思うのですが、$itemがどこでインスタンスされているのか($item = new Class名)、またインスタンス元のクラスはどこにあるのかがわかりません。または解釈が全然違っていたりしますか?同じように、get_post($item->object_id)、esc_attr($page->post_name)の$itemや$pageがどこでインスタンス化されているのかも気になります。
php初心者ですので、検討外れな質問をしていたら申し訳ありません。
ご教授ください。<header.php>
add_filter(‘nav_menu_css_class’, ‘apt_slug_nav’, 10, 2);
wp_nav_menu(array(
‘container’ => ‘div’,
‘container_id’ => ‘global_nav’,
‘theme_location’ => ‘place_pc_global’,
‘depth’ => 3,
));
remove_filter(‘nav_menu_css_class’, ‘apt_slug_nav’);<functions.php>
// wp_nav_menuにslugのクラス属性を追加する。
function apt_slug_nav($css, $item) {
if ($item->object == ‘page’) {
$page = get_post($item->object_id);
$css[] = ‘menu-item-slug-‘ . esc_attr($page->post_name);
}
return $css;
}
- トピック「WordPressのphp部分の質問です。」には新たに返信することはできません。