我有点问题。我开发了一个插件,很少有人在使用它。然而,一个人报告了一个奇怪的问题。自定义帖子菜单不会显示给他(它显示在我的测试网站上,其他人也没有任何问题)。现在,菜单中的页面实际上就在那里,您可以使用https://domain.com/wp-admin/edit.php?post_type=custom-post-type和https://domain.com/wp-admin/post-new.php?post_type=custom-post-type等链接来访问它们 {{3}},它只是不会出现在菜单中。
自定义帖子类型注册如下:
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
));
知道可能导致这种情况的原因是什么?我的智慧结束了。
答案 0 :(得分:0)
不幸的是(正如您所发现的那样),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
代替您正在使用的当前菜单位置整数。
答案 1 :(得分:-1)
在构建多站点时我也遇到过这个问题。我认为WordPress应该调整这个,因为我实际上忽略了这两次,因为没有通知。
创建新位置(网站)后,我没有看到任何自定义帖子类型被注册。
为了解决这个问题,我所要做的只是进入管理面板中的主题&激活我的自定义主题。
为什么我认为WP应该改变一些东西?
因为'Active'主题实际上并不存在!说明目录'twentyfifteen'不存在的错误只出现在Themes页面上。如果它只出现在仪表板上......但是,嘿,我现在还记得:)