【问题标题】:WordPress custom post type doesn't show up in left menu bar on specific siteWordPress 自定义帖子类型未显示在特定站点的左侧菜单栏中
【发布时间】:2015-02-25 10:53:54
【问题描述】:

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

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

【问题讨论】:

  • menu_position 是否可能与另一个冲突?如果您检查页面源代码,您会看到什么吗?我还看到了自定义 JS 负责在 Admin 中隐藏菜单项的情况。
  • 我不确定 menu_position。不,整个 li 菜单元素不存在。
  • 是的,好像是位置冲突。我之前尝试过设置 81,但没有帮助。我现在尝试将其设置为 82 并显示出来。关于如何减少这种情况发生的任何想法?似乎不再可以使用小数。
  • 您有机会尝试我的建议吗?好奇它是否有效......

标签: php wordpress


【解决方案1】:

不幸的是(正如您所发现的),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 代替您正在使用的当前菜单位置整数。

【讨论】:

    【解决方案2】:

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

    创建新位置(站点)后,我没有看到任何正在注册的自定义帖子类型。

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

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

    因为“活动”主题实际上并不存在!指出目录“twentyfifteen”不存在的错误仅出现在主题页面上。如果它只出现在仪表板上......但是,嘿,我现在会记得:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多