SWITCH_TO_BLOG()和wp_NAV_Menu()无法正常运行

时间:2016-02-04 作者:EHerman

我有一个活跃在网络上的MU插件,这个小功能可以从我的网络主站点查询菜单4。在网络主站点上(1)一切正常。

在网络中的子站点(2、3、4)上,没有显示菜单(因为我将回退设置为false,并且没有找到菜单)。

我想知道我是做错了什么,还是有更大的事情出了问题。

/**
*   Multisite menu
*/
function wp_multisite_nav_menu() {
    global $blog_id;
    $args =  array(
        \'menu\'            => 4,
        \'fallback_cb\' => false,
        \'menu_class\'      => \'main-nav\',
        \'depth\'           => 0,
    );
    if ( ! is_multisite() || 1 == $blog_id ) {
        wp_nav_menu( $args );
        return;
    }
    // switch to blog, and query
    switch_to_blog( 1 );
    wp_nav_menu( $args );  
    // switch back to original blog
    restore_current_blog();
}
我可以看到switch\\u to\\u blog正在正确切换,因为我可以使用get_bloginfo( \'name\' );get_the_title( 123 ); 没有任何问题。

或者,如果这不是最好的解决方法,我会寻求其他解决方案。

1 个回复
SO网友:EHerman

经过一段时间的调试,我能够将其缩小到以下范围:

我创建的用于在网络中的每个站点上显示的菜单由自定义帖子类型组成were not 在任何其他子网站上注册,仅主网站(1)。

无论出于何种原因,必须在网络中显示菜单(2、3等)的每个站点上注册自定义帖子类型。

这可以用与在顶级父站点(1)上相同的方式来完成,但要改变show_uiregister_post_type 调用,以防止自定义帖子类型出现在子站点管理菜单中。

相关推荐

媒体库链接在SSL更新后损坏的WordPress MultiSite

我们已将SSL更新(未添加)到站点网络管理媒体库上的媒体工作正常,但子站点的媒体库显示灰色框例如:图像url如下所示:(直接访问此url时,服务器404出错,而不是WordPress 404页面)https://domain.com/blog/multisitedomain/wp-content/uploads/sites/2/2020/09/image-file.png 分解它我们有https://domain.com/blog ->