无法在wp-admin中检索CPT的任何帖子

时间:2018-06-27 作者:kero

我有一个网站,有一些自定义的帖子类型。这些都以非常相似的方式注册,共享大多数属性:

const ARGS = [
    \'hierarchical\'          => true,
    //\'public\'                => true,
    \'show_ui\'               => true,
    \'show_in_menu\'          => true,
    \'menu_position\'         => 5,
    \'show_in_admin_bar\'     => true,
    \'show_in_nav_menus\'     => true,
    \'can_export\'            => true,
    \'has_archive\'           => true,
    \'exclude_from_search\'   => false,
    //\'publicly_queryable\'    => true,
    \'capability_type\'       => \'page\',
    \'show_in_rest\'          => false,
];
例如,CPTorderperson 都是这样注册的

private static function register_order()
{
    $args = array_merge(
        [
            \'label\'                 => __( \'order\', \'X\' ),
            \'labels\'                => [...],
            \'supports\'              => [\'title\', \'editor\', \'author\'],
        ],
        self::ARGS
     );

    register_post_type( \'order\', $args );
}

private static function register_person()
{
    $args = array_merge(
        [
            \'label\'                 => __( \'person\', \'X\' ),
            \'labels\'                => [...],
            \'supports\'              => [\'title\', \'author\'],
        ],
        self::ARGS
    );

    register_post_type( \'person\', $args );
}
然而,在wp admin中,我目前只看到persons鉴于orders给我一个空列表。

enter image description here

通过调试栏和查询监视器对此进行调试,我得到以下主要查询order (修订了post_status 对于两个查询)

SELECT wp_posts.ID, wp_posts.post_parent
FROM wp_posts 
WHERE 1=1 
AND (wp_posts.ID = \'0\')
AND wp_posts.post_type = \'order\'
AND (...) 
ORDER BY wp_posts.menu_order ASC, wp_posts.post_title ASC
和的查询person

SELECT wp_posts.ID, wp_posts.post_parent
FROM wp_posts 
WHERE 1=1 
AND wp_posts.post_type = \'person\'
AND (...) 
ORDER BY wp_posts.menu_order ASC, wp_posts.post_title ASC
现在我对SQL有了足够的了解

AND (wp_posts.ID = \'0\')
是我没有得到任何结果的原因。我只是不知道它为什么会在那里。我没有pre_get_posts 钩子集,停用除此之外的所有插件,没有任何更改。

1 个回复
最合适的回答,由SO网友:kero 整理而成

mmm 指出in the comments, order 不应用作自定义帖子类型的名称,因为它可能“干扰其他WordPress功能”。在中阅读更多信息Codex:

保留的帖子类型WordPress已保留并使用以下帖子类型

  • post
  • page
  • attachment
  • revision
  • nav_menu_item
  • custom_css
  • customize_changeset

    • action
    • author
    • order
    • theme

结束

相关推荐

404更改登录URL后重定向wp-登录和wp-admin

我已使用以下代码成功地将登录页面更改为自定义url:这一个进入wp配置。phpdefine(\'WP_ADMIN_DIR\', \'secret-folder\'); define( \'ADMIN_COOKIE_PATH\', SITECOOKIEPATH . WP_ADMIN_DIR); 这一个变成了函数。phpadd_filter(\'site_url\', \'wpadmin_filter\', 10, 3); function wpadmin_filter( $url