这不会像你想的那么容易。。。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 ) );