WordPress自定义帖子类型没有';不会显示在特定站点的左侧菜单栏中


WordPress custom post type doesn't show up in left menu bar on specific site

我有点问题。我已经开发了一个插件,很少有人使用它。然而,有人报告了一个奇怪的问题。自定义帖子菜单没有为他显示(它显示在我的测试网站上,其他人也没有任何问题)。现在,菜单中的页面实际上就在那里,您可以使用以下链接来访问它们https://domain.com/wp-admin/edit.php?post_type=custom-帖子类型和https://domain.com/wp-admin/post-new.php?post_type=custom-post-type,它只是没有显示在菜单中。

自定义帖子类型注册如下:

register_post_type('custom-post-type', array(
'label'=>"Custom Post Type Name",
'supports'=>array('title'),
'public'=>false,
'show_ui'=>true,
'show_in_menu'=>true,
'rewrite'=>false,
'menu_icon'=>plugin_dir_url(__FILE__).'res/menu_icon.png',
'query_var'=>false,
'publicly_queryable'=>false,
'menu_position'=>80,
'exclude_from_search'=>true
));

知道是什么原因造成的吗?我已经无计可施了。

不幸的是(正如您所发现的),WordPress以一种愚蠢的方式处理菜单排序。更糟糕的是,位置的float值不再被允许。

为了完全避免冲突,你可以尝试获取当前的菜单位置,然后直接在上面或下面设置你的菜单。我还没有测试过,但下面这样的东西应该有效:

global $menu;  // An array of all menu positions
$my_menu_position = 80;
// While another menu item is in your desired position
while ( !empty( $menu[$my_menu_position] ) ) {
    // Increment the menu position by one
    ++$my_menu_position;
}

然后,您可以使用$my_menu_position来代替您正在使用的当前菜单位置整数。

我在构建多站点时也遇到了这个问题。我认为WordPress应该对此进行调整,因为由于缺乏通知,我实际上两次忽略了这一点。

一旦我创建了一个新的位置(网站),我就没有看到任何自定义的帖子类型被注册。

要修复它,我所要做的就是进入管理面板中的主题&激活我的自定义主题

为什么我认为WP应该改变一些东西

因为"活动"主题实际上并不存在!声明目录"twentyffteen"不存在的错误仅显示在主题页上。如果它只出现在仪表板上。。。但是,嘿,我现在会记住:)