如何获得没有作者的帖子?

时间:2019-02-25 作者:RafaSashi

我正在寻找一种没有作者的方式来获取所有帖子。

插入时,post\\u author=0;

但下一行返回所有帖子,而不是没有/空作者的帖子

get_posts( array(\'author\' => 0 ));
如何获得没有作者的帖子?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

这不会像你想的那么容易。。。get_posts 使用WP_Query 如果你看看WP_Query 代码,你会看到10,其中0被用作空(https://core.trac.wordpress.org/browser/tags/5.0.3/src/wp-includes/class-wp-query.php#L2052):

if ( ! empty( $q[\'author\'] ) && $q[\'author\'] != \'0\' ) {
这意味着你不能通过\'author\' => 0 并获取作者为0的帖子。这是正确的行为,因为0不是post_author 列-此列应包含现有用户的ID。

另一方面,如果其中已经有0,则必须使用自定义SQL来获取这些帖子。执行此操作的一种方法是使用以下代码:

global $wpdb;
$ids = wp_list_pluck( $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type=post AND post_author=0" ), \'ID\' );
$posts = get_posts( array( \'post__in\' => $ids, \'posts_per_page\' => -1 ) );

相关推荐

If post author role is X

简化我当前显示特色帖子的方式,当一篇帖子由正式成员提交时,会向帖子添加一个post\\u meta值,然后以不同的样式显示。但是我想根据帖子作者,用户角色来做这件事。因此,如果提交帖子的用户是“full\\u成员”,那么他们的帖子将自动显示,而无需查询post\\u meta。我在归档模板循环中尝试过类似的方法,只是在包装div中添加了一个“featured listing”类,但我认为我没有正确地看待它。 <?php $user = wp_get_current_user(); if (