【问题标题】:Add page to menu programmatically after creation创建后以编程方式将页面添加到菜单
【发布时间】:2018-11-30 09:21:56
【问题描述】:

我已经尝试了几个小时来解决这个问题,但我没有运气。我知道我很容易错过它,但我在 StackOverflow 上的任何地方都找不到它。

我想要的是将此处创建的页面添加到现有菜单(将是空白),或者删除当前菜单,创建一个新菜单并以这种方式添加页面,以更容易者为准。

这是我用来从插件界面添加页面(和编辑/保存)的代码:

$titlep2 = $_REQUEST['titlep2'];
$post_text2 = $_REQUEST['post_text2'];
if($titlep2 != ""){
$posthwe_id2 = get_option("hwepag2");
    if($posthwe_id2 == ""){ 
        $hwea2 = array('post_title' => $titlep2,
                       'post_content' => $post_text2,
                       'post_status' => 'publish',
                       'post_type' => 'page');
        $post_idp2 = wp_insert_post($hwea2);
        update_option("hwepag2",$post_idp2);
    }else{
        $my_post2 = array('ID'           => $posthwe_id2,
                          'post_title'   => $titlep2,
                          'post_content' => $post_text2,
        );
        wp_update_post( $my_post2 );
    }
}

我尝试了许多 wp_update_nav_menu_item 的变体,但我无法让它工作。我有一个现有的菜单,但添加此帖子时它将是空白的(这是针对我离线开发的新网站)。既然如此,在向菜单添加元素之前,UL 中似乎不存在“menu-top”的 menuID。

所以,如果需要删除当前菜单,创建一个新菜单,然后将我要添加的页面添加到该菜单中,这很好。

非常感谢!

【问题讨论】:

    标签: php wordpress menu nav


    【解决方案1】:

    如果尚未完成,请尝试以下操作: 转到外观 > 菜单 > 如果您有多个菜单,请选择您的菜单 > 选中下方的复选框“自动将新的顶级页面添加到此菜单”

    【讨论】:

    • 对不起,但这不是一个可行的解决方案...我正在自动向我的开发站点添加多个页面,包括主页/首页,我想指定添加哪个页面。这只是我要添加的“联系人”页面。但是该联系页面将有一个不同的“页面 ID”,并且每次都有可能的名称。这就是为什么必须在创建时识别和添加它的原因。
    • 好的,然后尝试查看此链接:gist.github.com/eduwass/4dc3f4522f6a91d033d4
    • 已经试过了,它对我不起作用...另外,由于在创建页面时菜单是空的,$menu_id NavMenu ID...我认为它没有菜单ID。源中没有任何内容(在 UL 中),只有当菜单中有项目时它才有 ID。
    猜你喜欢
    • 2010-09-16
    • 2013-12-16
    • 1970-01-01
    • 2013-10-29
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多