我正在制作一个wordpress投资组合网站。
我想在菜单中自定义帖子类型来统计我的帖子。
这就是我想要实现的目标:
Designs Films
15 20
这是我的菜单代码:
<?php
if (get_sub_option(GN_SLUG, 'use_bootstrap', false)) {
wp_nav_menu(array(
'menu' => 'top',
'theme_location' => 'top',
'depth' => 2,
'container' => 'div',
'container_class' => 'collapse navbar-collapse',
'container_id' => 'navbar',
'menu_class' => 'nav navbar-nav navbarTop',
'fallback_cb' => 'wp_bootstrap_navwalker::fallback',
'walker' => new wp_bootstrap_navwalker())
);
}
else {
wp_nav_menu(array('theme_location' => 'top'));
}
?>
我知道如何计算我的自定义后期类型
$posts = get_posts('post_type= work_content');
$count = count($posts);
echo $count;
但我不知道如何将计数器与菜单结合起来......这可能吗?我怎么处理这个?
谢谢!
答案 0 :(得分:0)
为了让您了解如何看待这样的沃克,这是一个例子:
class My_Walker_Nav_Menu extends Walker_Nav_Menu {
/**
* Ends the element output, if needed.
*
* @since 3.0.0
*
* @see Walker::end_el()
*
* @param string $output Passed by reference. Used to append additional content.
* @param object $item Page data object. Not used.
* @param int $depth Depth of page. Not Used.
* @param array $args An array of wp_nav_menu() arguments.
*/
public function end_el( &$output, $item, $depth = 0, $args = array() ) {
// var_dump( $item );
$my_count_slugs = array('films', 'designs');
if ( in_array( $item->post_name, $my_count_slugs ) ) {
$count = get_count_from_your_counter_function( $item->post_name );
$output .= '<div class="count">'. $count .'</div>';
}
$output .= "</li>\n";
}
}
在wp_nav_menu()
中,您必须立即使用'walker' => new My_Walker_Nav_Menu
。
get_count_from_your_counter_function()
应该返回计数器值(你必须创建这个函数)。
答案 1 :(得分:0)
1)首先,您应该在wordpress.stackexchange.com
询问WP问题2)关于解决方案:你可以这样做:
add_filter( 'wp_nav_menu_items', function($menu) {
$GLOBALS['my_counter_fro_design']= substr_count($menu, 'menu-item-object-Designs');
$GLOBALS['my_counter_fro_film']= substr_count($menu, 'menu-item-object-Films');
});
然后,在执行wp_nav_menu
函数后,您可以:。
var_dump($GLOBALS['my_counter_fro_design']); exit;