带有作者参数的新WP_QUERY不返回任何结果

时间:2019-07-31 作者:www.matemingler.com

我正在尝试按作者检索自定义帖子类型,但没有成功。

注册职位类型:

register_post_type( \'resume\', array(
    \'capability_type\'   => \'resume\',
    \'map_meta_cap\'      => true,
    \'show_in_rest\'      => true,
    \'supports\'          => array( \'title\', \'editor\', \'comments\', \'author\', \'revisions\' ),
    \'rewrite\'           => array( \'slug\' => \'resume\' ),
    \'has_archive\'       => true,
    \'public\'            => true,
    \'menu_icon\'         => \'dashicons-welcome-write-blog\'
    \'labels\' => array(
        \'name\'          => \'Resumes\',
        \'add_new_item\'  => \'Add New Resume\',
        \'edit_item\'     => \'Edit Resume\',
        \'all_items\'     => \'All Resumes\',
        \'singular_name\' => \'Resume\'
    ),
) );
我通过以下方式获取所有条目:

new WP_Query( array(
    \'post_type\' => \'resume\'
) );
但没有以下结果:

new WP_Query( array(
    \'post_type\' => \'resume\',
    \'author\'    => 1,
) );
我做错了什么?

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

无论何时使用capability_type 然后,您需要将这些功能分配给应该有权访问post类型的角色;否则,他们将无法访问post类型。

不久前,贾斯汀·塔洛克写了一篇关于capbility_type: Meta Capabilities For Custom Post Types.

如果您不想将这些功能分配给角色,那么只需将其更改为\'capability_type\' => \'post\'\'capbility_type\' => \'page\' 这将使任何有权访问帖子或页面的人都可以访问您的帖子类型。

需要注意的几件事:

1) 确保您的post type slug相同。它可能被标记为“恢复”,但slug可能不同。如果看不到post type注册码,很难说清楚。

2) 您需要将查询分配给一个变量,然后循环该变量。这是一个与普通查询不同的辅助查询。你需要自己循环。文档中有一些关于标准循环的好例子:

https://developer.wordpress.org/reference/classes/wp_query/#standard-loop

<?php 
    // the query
    $the_query = new WP_Query(array(
        \'post_type\' => \'resume\',
        \'author\' => 1,
    ) );
?>

<?php if ( $the_query->have_posts() ) : ?>

    <!-- the loop -->
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
        <h2><?php the_title(); ?></h2>
    <?php endwhile; ?>
    <!-- end of the loop -->

    <!-- Reset the main query data -->
    <?php wp_reset_postdata(); ?>

<?php else : ?>
    <p><?php _e( \'Sorry, no posts matched your criteria.\' ); ?></p>
<?php endif; ?>
3)确保这就是你要找的作者。通常ID 1是为站点创建的第一个作者,就像管理员一样。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post