在后端的菜单部分添加预定的页面或帖子

时间:2017-11-25 作者:Kaizur

在发布页面/帖子之前,我想在后端的菜单部分添加计划页面/帖子。请查看屏幕截图:

Menu

1 个回复
最合适的回答,由SO网友:Shibi 整理而成

您可以使用过滤器添加将来的页面nav_menu_items_page

Notes:

<通过更改挂钩中的posttype,您可以对立柱或其他cpt执行相同的操作nav_menu_items_{$post_type}View All 页中的选项卡

Example:

function add_scheduled_pages($posts, $args, $post_type) {
    $query = new WP_Query(
        array(
            \'post_type\' => \'page\',
            \'post_status\' => array(\'publish\', \'future\')
        )
    );

    $posts = $query->posts;
    return $posts;
}
add_filter( \'nav_menu_items_page\', \'add_scheduled_pages\', 10, 3 );
现在,您可以将未来页面添加到菜单中,但此页面也将显示在前端菜单中。

因此,现在需要过滤所有未来的页面,并将其从前端删除。

它可以通过过滤器完成wp_nav_menu_objects

function remove_future_pages($sorted_menu_items, $args) {
    $filter_futures = array_filter($sorted_menu_items, function($item) {
        if(get_post_status($item->object_id) !== \'future\') {
            return $item;
        }
    });
    return $filter_futures;
}
add_filter( \'wp_nav_menu_objects\', \'remove_future_pages\', 10, 2 );

结束

相关推荐

Use menus with anchors

我有一个CPT归档页面,我想创建一个导航菜单,该菜单将跳转到表单中的锚定<a name=\"post-slug\" http=\"{the permalink goes here}>The CPT Title</a>我已经能够在模板文件中创建锚定,所以这不是问题对于页面顶部的链接本身,我可以手动创建它们,也可以使用WordPress菜单系统中的自定义链接。。。。但是有很多,所以我宁愿尝试在WordPress菜单系统中创建一个常规菜单。问题是,我需要以某种方式调整它的输出,以更改常规