--- a/wp/wp-includes/class-wp-query.php Tue Dec 15 15:52:01 2020 +0100
+++ b/wp/wp-includes/class-wp-query.php Wed Sep 21 18:19:35 2022 +0200
@@ -63,7 +63,7 @@
* Holds the contents of a post, page, category, attachment.
*
* @since 1.5.0
- * @var object|array
+ * @var WP_Term|WP_Post_Type|WP_Post|WP_User|null
*/
public $queried_object;
@@ -76,7 +76,7 @@
public $queried_object_id;
/**
- * Get post database query.
+ * SQL for the database query.
*
* @since 2.0.1
* @var string
@@ -84,10 +84,10 @@
public $request;
/**
- * List of posts.
+ * Array of post objects or post IDs.
*
* @since 1.5.0
- * @var array
+ * @var WP_Post[]|int[]
*/
public $posts;
@@ -118,8 +118,11 @@
/**
* The current post.
*
+ * This property does not get populated when the `fields` argument is set to
+ * `ids` or `id=>parent`.
+ *
* @since 1.5.0
- * @var WP_Post
+ * @var WP_Post|null
*/
public $post;
@@ -127,7 +130,7 @@
* The list of comments for current post.
*
* @since 2.2.0
- * @var array
+ * @var WP_Comment[]
*/
public $comments;
@@ -148,10 +151,10 @@
public $current_comment = -1;
/**
- * Current comment ID.
+ * Current comment object.
*
* @since 2.2.0
- * @var int
+ * @var WP_Comment
*/
public $comment;
@@ -630,13 +633,13 @@
* @type int $attachment_id Attachment post ID. Used for 'attachment' post_type.
* @type int|string $author Author ID, or comma-separated list of IDs.
* @type string $author_name User 'user_nicename'.
- * @type array $author__in An array of author IDs to query from.
- * @type array $author__not_in An array of author IDs not to query from.
+ * @type int[] $author__in An array of author IDs to query from.
+ * @type int[] $author__not_in An array of author IDs not to query from.
* @type bool $cache_results Whether to cache post information. Default true.
* @type int|string $cat Category ID or comma-separated list of IDs (this or any children).
- * @type array $category__and An array of category IDs (AND in).
- * @type array $category__in An array of category IDs (OR in, no children).
- * @type array $category__not_in An array of category IDs (NOT in).
+ * @type int[] $category__and An array of category IDs (AND in).
+ * @type int[] $category__in An array of category IDs (OR in, no children).
+ * @type int[] $category__not_in An array of category IDs (NOT in).
* @type string $category_name Use category slug (not name, this or any children).
* @type array|int $comment_count Filter results by comment count. Provide an integer to match
* comment count exactly. Provide an array with integer 'value'
@@ -696,15 +699,15 @@
* @type string $pagename Page slug.
* @type string $perm Show posts if user has the appropriate capability.
* @type string $ping_status Ping status.
- * @type array $post__in An array of post IDs to retrieve, sticky posts will be included.
- * @type array $post__not_in An array of post IDs not to retrieve. Note: a string of comma-
+ * @type int[] $post__in An array of post IDs to retrieve, sticky posts will be included.
+ * @type int[] $post__not_in An array of post IDs not to retrieve. Note: a string of comma-
* separated IDs will NOT work.
* @type string $post_mime_type The mime type of the post. Used for 'attachment' post_type.
- * @type array $post_name__in An array of post slugs that results must match.
+ * @type string[] $post_name__in An array of post slugs that results must match.
* @type int $post_parent Page ID to retrieve child pages for. Use 0 to only retrieve
* top-level pages.
- * @type array $post_parent__in An array containing parent page IDs to query child pages from.
- * @type array $post_parent__not_in An array containing parent page IDs not to query child pages from.
+ * @type int[] $post_parent__in An array containing parent page IDs to query child pages from.
+ * @type int[] $post_parent__not_in An array containing parent page IDs not to query child pages from.
* @type string|array $post_type A post type slug (string) or array of post type slugs.
* Default 'any' if using 'tax_query'.
* @type string|array $post_status A post status (string) or array of post statuses.
@@ -720,15 +723,15 @@
* @type bool $sentence Whether to search by phrase. Default false.
* @type bool $suppress_filters Whether to suppress filters. Default false.
* @type string $tag Tag slug. Comma-separated (either), Plus-separated (all).
- * @type array $tag__and An array of tag IDs (AND in).
- * @type array $tag__in An array of tag IDs (OR in).
- * @type array $tag__not_in An array of tag IDs (NOT in).
+ * @type int[] $tag__and An array of tag IDs (AND in).
+ * @type int[] $tag__in An array of tag IDs (OR in).
+ * @type int[] $tag__not_in An array of tag IDs (NOT in).
* @type int $tag_id Tag id or comma-separated list of IDs.
- * @type array $tag_slug__and An array of tag slugs (AND in).
- * @type array $tag_slug__in An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
+ * @type string[] $tag_slug__and An array of tag slugs (AND in).
+ * @type string[] $tag_slug__in An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
* true. Note: a string of comma-separated IDs will NOT work.
* @type array $tax_query An associative array of WP_Tax_Query arguments.
- * See WP_Tax_Query->queries.
+ * See WP_Tax_Query->__construct().
* @type string $title Post title.
* @type bool $update_post_meta_cache Whether to update the post meta cache. Default true.
* @type bool $update_post_term_cache Whether to update the post term cache. Default true.
@@ -759,11 +762,11 @@
$this->is_favicon = true;
}
- if ( ! is_scalar( $qv['p'] ) || $qv['p'] < 0 ) {
+ if ( ! is_scalar( $qv['p'] ) || (int) $qv['p'] < 0 ) {
$qv['p'] = 0;
$qv['error'] = '404';
} else {
- $qv['p'] = intval( $qv['p'] );
+ $qv['p'] = (int) $qv['p'];
}
$qv['page_id'] = absint( $qv['page_id'] );
@@ -791,7 +794,7 @@
$qv['menu_order'] = absint( $qv['menu_order'] );
}
- // Fairly insane upper bound for search string lengths.
+ // Fairly large, potentially too large, upper bound for search string lengths.
if ( ! is_scalar( $qv['s'] ) || ( ! empty( $qv['s'] ) && strlen( $qv['s'] ) > 1600 ) ) {
$qv['s'] = '';
}
@@ -942,7 +945,7 @@
$this->is_trackback = true;
}
- if ( '' != $qv['paged'] && ( intval( $qv['paged'] ) > 1 ) ) {
+ if ( '' != $qv['paged'] && ( (int) $qv['paged'] > 1 ) ) {
$this->is_paged = true;
}
@@ -1075,7 +1078,7 @@
*
* @since 1.5.0
*
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'parse_query', array( &$this ) );
}
@@ -1115,7 +1118,7 @@
'field' => 'slug',
);
- if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
+ if ( ! empty( $t->rewrite['hierarchical'] ) ) {
$q[ $t->query_var ] = wp_basename( $q[ $t->query_var ] );
}
@@ -1316,7 +1319,7 @@
*
* @since 3.7.0
*
- * @param WP_Query $this The WP_Query instance.
+ * @param WP_Query $query The WP_Query instance.
*/
do_action( 'parse_tax_query', $this );
}
@@ -1604,7 +1607,7 @@
// If RAND() contains a seed value, sanitize and add to allowed keys.
$rand_with_seed = false;
if ( preg_match( '/RAND\(([0-9]+)\)/i', $orderby, $matches ) ) {
- $orderby = sprintf( 'RAND(%s)', intval( $matches[1] ) );
+ $orderby = sprintf( 'RAND(%s)', (int) $matches[1] );
$allowed_keys[] = $orderby;
$rand_with_seed = true;
}
@@ -1715,19 +1718,19 @@
*
* @since 5.5.0
*
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'set_404', array( $this ) );
}
/**
- * Retrieve query variable.
+ * Retrieves the value of a query variable.
*
* @since 1.5.0
* @since 3.9.0 The `$default` argument was introduced.
*
* @param string $query_var Query variable key.
- * @param mixed $default Optional. Value to return if the query variable is not set. Default empty.
+ * @param mixed $default Optional. Value to return if the query variable is not set. Default empty string.
* @return mixed Contents of the query variable.
*/
public function get( $query_var, $default = '' ) {
@@ -1739,7 +1742,7 @@
}
/**
- * Set query variable.
+ * Sets the value of a query variable.
*
* @since 1.5.0
*
@@ -1758,6 +1761,8 @@
*
* @since 1.5.0
*
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
* @return WP_Post[]|int[] Array of post objects or post IDs.
*/
public function get_posts() {
@@ -1774,7 +1779,7 @@
*
* @since 2.0.0
*
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'pre_get_posts', array( &$this ) );
@@ -2121,7 +2126,7 @@
* @since 3.0.0
*
* @param string $search Search SQL for WHERE clause.
- * @param WP_Query $this The current WP_Query object.
+ * @param WP_Query $query The current WP_Query object.
*/
$search = apply_filters_ref_array( 'posts_search', array( $search, &$this ) );
}
@@ -2263,7 +2268,7 @@
// Numeric comment count is converted to array format.
if ( is_numeric( $q['comment_count'] ) ) {
$q['comment_count'] = array(
- 'value' => intval( $q['comment_count'] ),
+ 'value' => (int) $q['comment_count'],
);
}
@@ -2376,7 +2381,7 @@
* @since 3.7.0
*
* @param string $search_orderby The ORDER BY clause.
- * @param WP_Query $this The current WP_Query instance.
+ * @param WP_Query $query The current WP_Query instance.
*/
$search_orderby = apply_filters( 'posts_search_orderby', $search_orderby, $this );
}
@@ -2420,10 +2425,10 @@
if ( empty( $in_search_post_types ) ) {
$where .= ' AND 1=0 ';
} else {
- $where .= " AND {$wpdb->posts}.post_type IN ('" . join( "', '", array_map( 'esc_sql', $in_search_post_types ) ) . "')";
+ $where .= " AND {$wpdb->posts}.post_type IN ('" . implode( "', '", array_map( 'esc_sql', $in_search_post_types ) ) . "')";
}
} elseif ( ! empty( $post_type ) && is_array( $post_type ) ) {
- $where .= " AND {$wpdb->posts}.post_type IN ('" . join( "', '", esc_sql( $post_type ) ) . "')";
+ $where .= " AND {$wpdb->posts}.post_type IN ('" . implode( "', '", esc_sql( $post_type ) ) . "')";
} elseif ( ! empty( $post_type ) ) {
$where .= $wpdb->prepare( " AND {$wpdb->posts}.post_type = %s", $post_type );
$post_type_object = get_post_type_object( $post_type );
@@ -2485,20 +2490,20 @@
}
if ( ! empty( $e_status ) ) {
- $statuswheres[] = '(' . join( ' AND ', $e_status ) . ')';
+ $statuswheres[] = '(' . implode( ' AND ', $e_status ) . ')';
}
if ( ! empty( $r_status ) ) {
if ( ! empty( $q['perm'] ) && 'editable' === $q['perm'] && ! current_user_can( $edit_others_cap ) ) {
- $statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . 'AND (' . join( ' OR ', $r_status ) . '))';
+ $statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . 'AND (' . implode( ' OR ', $r_status ) . '))';
} else {
- $statuswheres[] = '(' . join( ' OR ', $r_status ) . ')';
+ $statuswheres[] = '(' . implode( ' OR ', $r_status ) . ')';
}
}
if ( ! empty( $p_status ) ) {
if ( ! empty( $q['perm'] ) && 'readable' === $q['perm'] && ! current_user_can( $read_private_cap ) ) {
- $statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . 'AND (' . join( ' OR ', $p_status ) . '))';
+ $statuswheres[] = "({$wpdb->posts}.post_author = $user_id " . 'AND (' . implode( ' OR ', $p_status ) . '))';
} else {
- $statuswheres[] = '(' . join( ' OR ', $p_status ) . ')';
+ $statuswheres[] = '(' . implode( ' OR ', $p_status ) . ')';
}
}
if ( $post_status_join ) {
@@ -2558,7 +2563,7 @@
* @since 1.5.0
*
* @param string $where The WHERE clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$where = apply_filters_ref_array( 'posts_where', array( $where, &$this ) );
@@ -2568,7 +2573,7 @@
* @since 1.5.0
*
* @param string $join The JOIN clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$join = apply_filters_ref_array( 'posts_join', array( $join, &$this ) );
}
@@ -2593,7 +2598,7 @@
// Comments feeds.
if ( $this->is_comment_feed && ! $this->is_singular ) {
if ( $this->is_archive || $this->is_search ) {
- $cjoin = "JOIN {$wpdb->posts} ON ({$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID) $join ";
+ $cjoin = "JOIN {$wpdb->posts} ON ( {$wpdb->comments}.comment_post_ID = {$wpdb->posts}.ID ) $join ";
$cwhere = "WHERE comment_approved = '1' $where";
$cgroupby = "{$wpdb->comments}.comment_id";
} else { // Other non-singular, e.g. front.
@@ -2609,7 +2614,7 @@
* @since 2.2.0
*
* @param string $cjoin The JOIN clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$cjoin = apply_filters_ref_array( 'comment_feed_join', array( $cjoin, &$this ) );
@@ -2619,7 +2624,7 @@
* @since 2.2.0
*
* @param string $cwhere The WHERE clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$cwhere = apply_filters_ref_array( 'comment_feed_where', array( $cwhere, &$this ) );
@@ -2629,7 +2634,7 @@
* @since 2.2.0
*
* @param string $cgroupby The GROUP BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( $cgroupby, &$this ) );
@@ -2639,7 +2644,7 @@
* @since 2.8.0
*
* @param string $corderby The ORDER BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
@@ -2649,7 +2654,7 @@
* @since 2.8.0
*
* @param string $climits The JOIN clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option( 'posts_per_rss' ), &$this ) );
}
@@ -2660,6 +2665,7 @@
$comments = (array) $wpdb->get_results( "SELECT $distinct {$wpdb->comments}.* FROM {$wpdb->comments} $cjoin $cwhere $cgroupby $corderby $climits" );
// Convert to WP_Comment.
+ /** @var WP_Comment[] */
$this->comments = array_map( 'get_comment', $comments );
$this->comment_count = count( $this->comments );
@@ -2669,7 +2675,7 @@
$post_ids[] = (int) $comment->comment_post_ID;
}
- $post_ids = join( ',', $post_ids );
+ $post_ids = implode( ',', $post_ids );
$join = '';
if ( $post_ids ) {
$where = "AND {$wpdb->posts}.ID IN ($post_ids) ";
@@ -2693,7 +2699,7 @@
* @since 1.5.0
*
* @param string $where The WHERE clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$where = apply_filters_ref_array( 'posts_where_paged', array( $where, &$this ) );
@@ -2703,7 +2709,7 @@
* @since 2.0.0
*
* @param string $groupby The GROUP BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$groupby = apply_filters_ref_array( 'posts_groupby', array( $groupby, &$this ) );
@@ -2715,7 +2721,7 @@
* @since 1.5.0
*
* @param string $join The JOIN clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$join = apply_filters_ref_array( 'posts_join_paged', array( $join, &$this ) );
@@ -2725,7 +2731,7 @@
* @since 1.5.1
*
* @param string $orderby The ORDER BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$orderby = apply_filters_ref_array( 'posts_orderby', array( $orderby, &$this ) );
@@ -2735,7 +2741,7 @@
* @since 2.1.0
*
* @param string $distinct The DISTINCT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$distinct = apply_filters_ref_array( 'posts_distinct', array( $distinct, &$this ) );
@@ -2745,7 +2751,7 @@
* @since 2.1.0
*
* @param string $limits The LIMIT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$limits = apply_filters_ref_array( 'post_limits', array( $limits, &$this ) );
@@ -2755,7 +2761,7 @@
* @since 2.1.0
*
* @param string $fields The SELECT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$fields = apply_filters_ref_array( 'posts_fields', array( $fields, &$this ) );
@@ -2768,7 +2774,7 @@
* @since 3.1.0
*
* @param string[] $clauses Associative array of the clauses for the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
@@ -2805,7 +2811,7 @@
* @since 2.5.0
*
* @param string $where The WHERE clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$where = apply_filters_ref_array( 'posts_where_request', array( $where, &$this ) );
@@ -2817,7 +2823,7 @@
* @since 2.5.0
*
* @param string $groupby The GROUP BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$groupby = apply_filters_ref_array( 'posts_groupby_request', array( $groupby, &$this ) );
@@ -2829,7 +2835,7 @@
* @since 2.5.0
*
* @param string $join The JOIN clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$join = apply_filters_ref_array( 'posts_join_request', array( $join, &$this ) );
@@ -2841,7 +2847,7 @@
* @since 2.5.0
*
* @param string $orderby The ORDER BY clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$orderby = apply_filters_ref_array( 'posts_orderby_request', array( $orderby, &$this ) );
@@ -2853,7 +2859,7 @@
* @since 2.5.0
*
* @param string $distinct The DISTINCT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$distinct = apply_filters_ref_array( 'posts_distinct_request', array( $distinct, &$this ) );
@@ -2865,7 +2871,7 @@
* @since 2.5.0
*
* @param string $fields The SELECT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$fields = apply_filters_ref_array( 'posts_fields_request', array( $fields, &$this ) );
@@ -2877,7 +2883,7 @@
* @since 2.5.0
*
* @param string $limits The LIMIT clause of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$limits = apply_filters_ref_array( 'post_limits_request', array( $limits, &$this ) );
@@ -2892,7 +2898,7 @@
* @since 3.1.0
*
* @param string[] $pieces Associative array of the pieces of the query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
@@ -2927,7 +2933,7 @@
* @since 2.0.0
*
* @param string $request The complete SQL query.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->request = apply_filters_ref_array( 'posts_request', array( $this->request, &$this ) );
}
@@ -2935,7 +2941,7 @@
/**
* Filters the posts array before the query takes place.
*
- * Return a non-null value to bypass WordPress's default post queries.
+ * Return a non-null value to bypass WordPress' default post queries.
*
* Filtering functions that require pagination information are encouraged to set
* the `found_posts` and `max_num_pages` properties of the WP_Query object,
@@ -2944,9 +2950,9 @@
*
* @since 4.6.0
*
- * @param array|null $posts Return an array of post data to short-circuit WP's query,
- * or null to allow WP to run its normal queries.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Post[]|int[]|null $posts Return an array of post data to short-circuit WP's query,
+ * or null to allow WP to run its normal queries.
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->posts = apply_filters_ref_array( 'posts_pre_query', array( null, &$this ) );
@@ -2955,6 +2961,7 @@
$this->posts = $wpdb->get_col( $this->request );
}
+ /** @var int[] */
$this->posts = array_map( 'intval', $this->posts );
$this->post_count = count( $this->posts );
$this->set_found_posts( $q, $limits );
@@ -2970,6 +2977,7 @@
$this->post_count = count( $this->posts );
$this->set_found_posts( $q, $limits );
+ /** @var int[] */
$r = array();
foreach ( $this->posts as $key => $post ) {
$this->posts[ $key ]->ID = (int) $post->ID;
@@ -2994,7 +3002,7 @@
* @since 3.4.0
*
* @param bool $split_the_query Whether or not to split the query.
- * @param WP_Query $this The WP_Query instance.
+ * @param WP_Query $query The WP_Query instance.
*/
$split_the_query = apply_filters( 'split_the_query', $split_the_query, $this );
@@ -3009,7 +3017,7 @@
* @since 3.4.0
*
* @param string $request The post ID request.
- * @param WP_Query $this The WP_Query instance.
+ * @param WP_Query $query The WP_Query instance.
*/
$this->request = apply_filters( 'posts_request_ids', $this->request, $this );
@@ -3030,6 +3038,7 @@
// Convert to WP_Post objects.
if ( $this->posts ) {
+ /** @var WP_Post[] */
$this->posts = array_map( 'get_post', $this->posts );
}
@@ -3040,7 +3049,7 @@
* @since 2.3.0
*
* @param WP_Post[] $posts Array of post objects.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->posts = apply_filters_ref_array( 'posts_results', array( $this->posts, &$this ) );
}
@@ -3066,6 +3075,7 @@
$comments_request = "SELECT {$wpdb->comments}.* FROM {$wpdb->comments} $cjoin $cwhere $cgroupby $corderby $climits";
$comments = $wpdb->get_results( $comments_request );
// Convert to WP_Comment.
+ /** @var WP_Comment[] */
$this->comments = array_map( 'get_comment', $comments );
$this->comment_count = count( $this->comments );
}
@@ -3122,7 +3132,7 @@
* @since 2.7.0
*
* @param WP_Post $post_preview The Post object.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->posts[0] = get_post( apply_filters_ref_array( 'the_preview', array( $this->posts[0], &$this ) ) );
}
@@ -3185,7 +3195,7 @@
* @since 1.5.0
*
* @param WP_Post[] $posts Array of post objects.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->posts = apply_filters_ref_array( 'the_posts', array( $this->posts, &$this ) );
}
@@ -3195,12 +3205,14 @@
if ( $this->posts ) {
$this->post_count = count( $this->posts );
+ /** @var WP_Post[] */
$this->posts = array_map( 'get_post', $this->posts );
if ( $q['cache_results'] ) {
update_post_caches( $this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
}
+ /** @var WP_Post */
$this->post = reset( $this->posts );
} else {
$this->post_count = 0;
@@ -3220,11 +3232,14 @@
*
* @since 3.5.0
*
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
* @param array $q Query variables.
* @param string $limits LIMIT clauses of the query.
*/
private function set_found_posts( $q, $limits ) {
global $wpdb;
+
// Bail if posts is an empty array. Continue if posts is an empty string,
// null, or false to accommodate caching plugins that fill posts later.
if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) ) {
@@ -3238,7 +3253,7 @@
* @since 2.1.0
*
* @param string $found_posts_query The query to run to find the found posts.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$found_posts_query = apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) );
@@ -3261,7 +3276,7 @@
* @since 2.1.0
*
* @param int $found_posts The number of posts found.
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
$this->found_posts = (int) apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
@@ -3281,6 +3296,7 @@
$this->current_post++;
+ /** @var WP_Post */
$this->post = $this->posts[ $this->current_post ];
return $this->post;
}
@@ -3305,7 +3321,7 @@
*
* @since 2.0.0
*
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'loop_start', array( &$this ) );
}
@@ -3332,7 +3348,7 @@
*
* @since 2.0.0
*
- * @param WP_Query $this The WP_Query instance (passed by reference).
+ * @param WP_Query $query The WP_Query instance (passed by reference).
*/
do_action_ref_array( 'loop_end', array( &$this ) );
// Do some cleaning up after the loop.
@@ -3343,7 +3359,7 @@
*
* @since 4.9.0
*
- * @param WP_Query $this The WP_Query instance.
+ * @param WP_Query $query The WP_Query instance.
*/
do_action( 'loop_no_results', $this );
}
@@ -3374,6 +3390,7 @@
public function next_comment() {
$this->current_comment++;
+ /** @var WP_Comment */
$this->comment = $this->comments[ $this->current_comment ];
return $this->comment;
}
@@ -3449,7 +3466,7 @@
}
/**
- * Retrieve queried object.
+ * Retrieves the currently queried object.
*
* If queried object is not set, then the queried object will be set from
* the category, tag, taxonomy, posts page, single post, page, or author
@@ -3457,7 +3474,7 @@
*
* @since 1.5.0
*
- * @return object
+ * @return WP_Term|WP_Post_Type|WP_Post|WP_User|null The queried object.
*/
public function get_queried_object() {
if ( isset( $this->queried_object ) ) {
@@ -3527,7 +3544,7 @@
}
/**
- * Retrieve ID of the current queried object.
+ * Retrieves the ID of the currently queried object.
*
* @since 1.5.0
*
@@ -3607,10 +3624,18 @@
/**
* Is the query for an existing archive page?
*
- * Month, Year, Category, Author, Post Type archive...
+ * Archive pages include category, tag, author, date, custom post type,
+ * and custom taxonomy based archives.
*
* @since 3.1.0
*
+ * @see WP_Query::is_category()
+ * @see WP_Query::is_tag()
+ * @see WP_Query::is_author()
+ * @see WP_Query::is_date()
+ * @see WP_Query::is_post_type_archive()
+ * @see WP_Query::is_tax()
+ *
* @return bool Whether the query is for an existing archive page.
*/
public function is_archive() {
@@ -3944,10 +3969,10 @@
* If you set a static page for the front page of your site, this function will return
* true only on the page you set as the "Posts page".
*
+ * @since 3.1.0
+ *
* @see WP_Query::is_front_page()
*
- * @since 3.1.0
- *
* @return bool Whether the query is for the blog homepage.
*/
public function is_home() {
@@ -3994,11 +4019,11 @@
* If the $page parameter is specified, this function will additionally
* check if the query is for one of the pages specified.
*
+ * @since 3.1.0
+ *
* @see WP_Query::is_single()
* @see WP_Query::is_singular()
*
- * @since 3.1.0
- *
* @param int|string|int[]|string[] $page Optional. Page ID, title, slug, path, or array of such
* to check against. Default empty.
* @return bool Whether the query is for an existing single page.
@@ -4101,11 +4126,11 @@
* If the $post parameter is specified, this function will additionally
* check if the query is for one of the Posts specified.
*
+ * @since 3.1.0
+ *
* @see WP_Query::is_page()
* @see WP_Query::is_singular()
*
- * @since 3.1.0
- *
* @param int|string|int[]|string[] $post Optional. Post ID, title, slug, path, or array of such
* to check against. Default empty.
* @return bool Whether the query is for an existing single post.
@@ -4151,11 +4176,11 @@
* If the $post_types parameter is specified, this function will additionally
* check if the query is for one of the Posts Types specified.
*
+ * @since 3.1.0
+ *
* @see WP_Query::is_page()
* @see WP_Query::is_single()
*
- * @since 3.1.0
- *
* @param string|string[] $post_types Optional. Post type or array of post types
* to check against. Default empty.
* @return bool Whether the query is for an existing single post
@@ -4289,10 +4314,10 @@
* Fires once the post data has been set up.
*
* @since 2.8.0
- * @since 4.1.0 Introduced `$this` parameter.
+ * @since 4.1.0 Introduced `$query` parameter.
*
- * @param WP_Post $post The Post object (passed by reference).
- * @param WP_Query $this The current Query object (passed by reference).
+ * @param WP_Post $post The Post object (passed by reference).
+ * @param WP_Query $query The current Query object (passed by reference).
*/
do_action_ref_array( 'the_post', array( &$post, &$this ) );
@@ -4305,7 +4330,7 @@
* @since 5.2.0
*
* @param WP_Post|object|int $post WP_Post instance or Post ID/object.
- * @return array|bool Elements of post or false on failure.
+ * @return array|false Elements of post or false on failure.
*/
public function generate_postdata( $post ) {