为外观>菜单项添加类别标签

时间:2020-02-10 作者:Giedrius

我在我的wp站点的不同类别下有多个同名页面。

我遇到的问题是,在“外观>菜单”部分很难区分我需要哪些。

因此,我正在寻找一个钩子来遍历这些项目,无论是在手风琴中还是在管理页面的菜单项列表中,但找不到任何钩子。

有没有什么钩子或其他方法可以帮助我做到这一点?

我当然可以编辑导航菜单。php,但它将被未来的更新覆盖。

提前感谢

1 个回复
SO网友:Vitauts Stočka

没有好的/容易的挂钩来实现这一点,但我认为这是可能的,只是需要一些工作。我可以给你大致的方向和一些想法。

可以在上使用挂钩nav_menu_items_pagenav_menu_items_page_recent 返回标题已更改的帖子数组。它们可能使用相同的函数,如下所示

function my_nav_menu_items($posts, $args) {
    foreach ($posts as $post) {
        // get category name or whatever you need for title
        $post->post_title = $post->post_title . " [..CATEGORY..]";
    }
    return $posts;
}
add_filter(\'nav_menu_items_page\', \'my_nav_menu_items\', 10, 2);
add_filter(\'nav_menu_items_page_recent\', \'my_nav_menu_items\', 10, 2);
但现在您又遇到了另一个问题,当您保存菜单时,更新的标题将用作菜单链接标题。为了防止这种情况,您可以尝试在wp_insert_post_data 或者类似的,检查post_type 存在nav_menu_item 然后从标题值中删除添加的类别。您可以使用一些方括号或独特的分隔符来简化此操作。

相关推荐

如何知道哪个页面正在调用admin-ajax.php?

最初的目标是:所有用户都可以在前端的页面上添加和删除图像,但他们只能看到自己的图像。当在网站的管理部分时,管理员应该看到来自每个用户的所有图像。(只有管理员才能访问网站的管理部分)。到目前为止,我有以下代码:add_action( \'pre_get_posts\',\'users_own_attachments\' ); function users_own_attachments( $wp_query_obj ) { global $current_user, $pagenow