这是一个相当古老的步骤,但在类似的上下文中使用@Aishan的函数,我遇到了一个问题。
没有is_admin()
条件在从菜单项中排除空类别之前,这些项目将从wp admin中的菜单编辑中排除。这意味着,如果有人在这些类别为空时保存菜单,它们将从菜单中删除。
在我的特殊情况下,我需要菜单项保留在那里,而如果菜单项为空,则只在前面进行过滤。如果类别再次变为非空,则该项目将重新出现在菜单中。
无论如何,这是我编辑过的版本
add_filter( \'wp_get_nav_menu_items\', \'nav_remove_empty_category_menu_item\',10, 3 );
function nav_remove_empty_category_menu_item ( $items, $menu, $args ) {
if ( ! is_admin() ) {
global $wpdb;
$nopost = $wpdb->get_col( "SELECT term_taxonomy_id FROM $wpdb->term_taxonomy WHERE count = 0" );
foreach ( $items as $key => $item ) {
if ( ( \'taxonomy\' == $item->type ) && ( in_array( $item->object_id, $nopost ) ) ) {
unset( $items[$key] );
}
}
}
return $items;
}