遇到一个问题,要显示当前页面的面包屑导航,只是这个面包屑路径反应的不是页面自身的层级关系,而是该页面在菜单导航中的位置。因此需要检测该页面所在菜单的current menu item,在stackexchange上找到了一个不错的方法,记录一下。
使用wp_nav_menu_objects filter查找current menu item,在调用wp_nav_menu之前先过滤一下这个filter的值,找到current menu item,将需要的信息,例如menu ID,标题或url等,记录到一个全局变量里。等调用完wp_nav_menu后,就可以使用这个全局变量显示信息了。代码如下
add_filter( 'wp_nav_menu_objects', 'wpse16243_wp_nav_menu_objects' ); function wpse16243_wp_nav_menu_objects( $sorted_menu_items ) { foreach ( $sorted_menu_items as $menu_item ) { if ( $menu_item->current ) { $GLOBALS['wpse16243_title'] = $menu_item->title; break; } } return $sorted_menu_items; }
全局变量$GLOBALS[‘wpse16243_title’]记录了当前菜单的current menu item的标题。
一些比较有用的信息如下
$menu_item->ID - Menu ID $menu_item->title - 该菜单项名称 $menu_item->post_title - Post Title,不一定和菜单项名称相同 $menu_item->url - 固定链接 $menu_item->object_id - post ID $menu_item->post_parent - Post Parent(例如page的parent page) $menu_item->menu_item_parent - 指在该菜单中的层级关系
如果需要在调用菜单之前使用,可以先调用一下wp_nav_menu但不显示。
WooCommerce 中如果将的按钮加到侧边栏中呢?这个调用代码是?
将什么按钮添加到侧栏中?
“加入购物车” 按钮的
如果是某个产品的,用woocommerce shortcode试试,google一下。
如果是想把当前页面的加入购物车按钮挪到sidebar,用js吧。
hello? = =
要是我,直接用 JS 获取插入 对应 DOM 里面了 \(^o^)/
如果这个元素是可有可无的东西,选js可以。必须有的话就只能php了
当然,最好还是后端直接输出了好。