基于在Wordpress菜单中按名称ASC对上一个问题的答案代码中的产品类别子菜单项进行排序,我能够在Wordpress导航菜单中自动将子类别显示为某些产品类别的菜单子项。
我的问题是:是否可以隐藏空的子类别(子菜单项)?
如果可能的话,还可以隐藏只包含一个已售完产品的类别。
您可以使用get_terms(),在这里可以指定更多选项,以便
get_term_children( $post->object_id, $taxonomy );
将成为
get_terms(array(
'taxonomy' => $taxonomy,
'parent' => $post->object_id,
'hide_empty' => true,
));
这也有一个order_by参数,默认为术语的名称
您还可以对以下参数使用get_terms()
:
'包括'
以包括中的所有子项get_term_children()
函数作为一个分离的词id字符串。 'orderby'
与'name'
属性按名称排序术语,'order'
与'ASC'属性排序术语升序,'hide_empty'
与true
属性不包括空术语。因此,排序将直接进行,而不需要foreach循环,您还将直接获得WP_Term对象的数组。
重新访问的代码:
add_filter( 'wp_get_nav_menu_items', 'custom_submenu_product_categories', 10, 3 );
function custom_submenu_product_categories( $items, $menu, $args ) {
// don't add child categories in administration of menus
if (is_admin()) {
return $items;
}
$taxonomy = 'product_cat';
foreach ($items as $index => $post) {
if ( $taxonomy !== $post->object ) {
continue;
}
$children_terms_ids = get_term_children( $post->object_id, $taxonomy );
if( ! empty($children_terms_ids) ) {
$sorted_terms = get_terms(array(
'taxonomy' => $taxonomy,
'include' => implode(',', $children_terms_ids),
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => true,
));
// Loop through sorted child terms to set them as sorted sub menu items
foreach ( $sorted_terms as $index2 => $child_term ) {
$item = new \stdClass();
$item->title = $child_term->name;
$item->url = get_term_link( $child_term, $taxonomy );
$item->menu_order = 500 * ($index + 1) + $index2;
$item->post_type = 'nav_menu_item';
$item->post_status = 'published';
$item->post_parent = $post->ID;
$item->menu_item_parent = $post->ID;
$item->type = 'custom';
$item->object = 'custom';
$item->description = '';
$item->object_id = 0;
$item->db_id = 0;
$item->ID = 0;
$item->position = 0;
$item->classes = array();
$item->target = ''; // <= Missing - Mandatory to avoid an error
$item->xfn = ''; // <= Missing - Mandatory to avoid an error
$items[] = $item;
}
}
}
return $items;
}
代码functions.php活动子主题(或活动主题)的文件中。测试和工作。
很抱歉,现在无法隐藏仅包含一个已售完产品的子类别。
我需要在主页上隐藏我的菜单,让它在向下滚动时出现。我正在使用Wordpress和Elementor。我能够通过安装“自定义CSS&JS”插件来实现这一点,它允许我添加任何我需要的JS代码。 我使用elementor自定义CSS在菜单部分添加了以下代码: null null 然后我用我安装的插件将这个Java脚本添加到我的网站上, null null 这做了工作,但现在菜单是隐藏在所有网页上的网站和
我试图通过WoodPress主题中的一个函数从WooCommerce获取产品类别 上面的代码返回一些产品,但是产品类别。 当我包括
最近我在我的网站上安装了两个插件。插件生成两个管理菜单。我想把菜单藏起来。 菜单名为: WP Metaboxer鼠标悬停链接(mysite.com/WP admin/edit.php?post_type=mtbxr_metabox) BWS插件鼠标悬停链接(mysite.com/wp-admin/admin.php?page=bws_plugins) 我可以通过这些代码隐藏其他默认菜单
我刚刚把我的超文本标记语言转换成WordPress。你可以在这里看到。我选择了每页显示一篇文章。 但是,我注意到我没有'Previous'链接和div。我现在只有'Next'链接和div。 如果我添加了'Previous'链接和div,我如何在我的主页中隐藏它(这里有最新的条目)?我如何在最后一个条目中隐藏“下一个”链接和div,而在最后一个条目页面中只显示“上一个”链接和div? 我想这个主题更
所以我想做的是让我的主菜单浮动,但同时是可调整大小的(窗口宽度),我也有一个隐藏的子菜单,我希望它遵循主菜单的规则。 此外,主菜单并不是从页面的顶部开始,但当你向下滚动时,我希望它能贴在顶部边缘并在那里Rest。 jsFiddle在这里 CSS JAVASCRIPT(jQuery的什么版本?) HTML(固定HTML格式,删除额外标记,添加缺失标记)
我有一个带有MenuItem的操作条。如何隐藏/显示该菜单项? 这就是我要做的: