WordPress自定义帖子类型不会显示在特定网站的左侧菜单栏中

时间:2015-02-25 10:53:54

标签: php wordpress

我有点问题。我开发了一个插件,很少有人在使用它。然而,一个人报告了一个奇怪的问题。自定义帖子菜单不会显示给他(它显示在我的测试网站上,其他人也没有任何问题)。现在,菜单中的页面实际上就在那里,您可以使用https://domain.com/wp-admin/edit.php?post_type=custom-post-typehttps://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
));

知道可能导致这种情况的原因是什么?我的智慧结束了。

2 个答案:

答案 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页面上。如果它只出现在仪表板上......但是,嘿,我现在还记得:)