0

I have set a custom meta key 'post_views' on a custom post type which I can see in my database has been added for 3 posts.

enter image description here

I now need to retrieve the ID's for these posts by searching for all posts that have this meta key.

$q = new WP_Query([
    'meta_key'   => 'post_views',
]);

$posts = $q->posts;

foreach($posts as $post) {
    var_dump($post);
    echo $post;
}

My problem is that when I do the WP_Query it does not return any posts.

Can anyone see why im not getting any results?

Thanks you

Also if I var_dump($q) it returns the following:

object(WP_Query)[12961]
  public 'query' => 
    array (size=1)
      'meta_key' => string 'post_views' (length=10)
  public 'query_vars' => 
    array (size=64)
      'meta_key' => string 'post_views' (length=10)
      'error' => string '' (length=0)
      'm' => string '' (length=0)
      'p' => int 0
      'post_parent' => string '' (length=0)
      'subpost' => string '' (length=0)
      'subpost_id' => string '' (length=0)
      'attachment' => string '' (length=0)
      'attachment_id' => int 0
      'name' => string '' (length=0)
      'pagename' => string '' (length=0)
      'page_id' => int 0
      'second' => string '' (length=0)
      'minute' => string '' (length=0)
      'hour' => string '' (length=0)
      'day' => int 0
      'monthnum' => int 0
      'year' => int 0
      'w' => int 0
      'category_name' => string '' (length=0)
      'tag' => string '' (length=0)
      'cat' => string '' (length=0)
      'tag_id' => string '' (length=0)
      'author' => string '' (length=0)
      'author_name' => string '' (length=0)
      'feed' => string '' (length=0)
      'tb' => string '' (length=0)
      'paged' => int 0
      'meta_value' => string '' (length=0)
      'preview' => string '' (length=0)
      's' => string '' (length=0)
      'sentence' => string '' (length=0)
      'title' => string '' (length=0)
      'fields' => string '' (length=0)
      'menu_order' => string '' (length=0)
      'embed' => string '' (length=0)
      'category__in' => 
        array (size=0)
          empty
      'category__not_in' => 
        array (size=0)
          empty
      'category__and' => 
        array (size=0)
          empty
      'post__in' => 
        array (size=0)
          empty
      'post__not_in' => 
        array (size=0)
          empty
      'post_name__in' => 
        array (size=0)
          empty
      'tag__in' => 
        array (size=0)
          empty
      'tag__not_in' => 
        array (size=0)
          empty
      'tag__and' => 
        array (size=0)
          empty
      'tag_slug__in' => 
        array (size=0)
          empty
      'tag_slug__and' => 
        array (size=0)
          empty
      'post_parent__in' => 
        array (size=0)
          empty
      'post_parent__not_in' => 
        array (size=0)
          empty
      'author__in' => 
        array (size=0)
          empty
      'author__not_in' => 
        array (size=0)
          empty
      'ignore_sticky_posts' => boolean false
      'suppress_filters' => boolean false
      'cache_results' => boolean true
      'update_post_term_cache' => boolean true
      'update_menu_item_cache' => boolean false
      'lazy_load_term_meta' => boolean true
      'update_post_meta_cache' => boolean true
      'post_type' => string '' (length=0)
      'posts_per_page' => int 9
      'nopaging' => boolean false
      'comments_per_page' => string '50' (length=2)
      'no_found_rows' => boolean false
      'order' => string 'DESC' (length=4)
  public 'tax_query' => 
    object(WP_Tax_Query)[12964]
      public 'queries' => 
        array (size=0)
          empty
      public 'relation' => string 'AND' (length=3)
      protected 'table_aliases' => 
        array (size=0)
          empty
      public 'queried_terms' => 
        array (size=0)
          empty
      public 'primary_table' => string 'wp_posts' (length=8)
      public 'primary_id_column' => string 'ID' (length=2)
  public 'meta_query' => 
    object(WP_Meta_Query)[12963]
      public 'queries' => 
        array (size=2)
          0 => 
            array (size=1)
              ...
          'relation' => string 'OR' (length=2)
      public 'relation' => string 'AND' (length=3)
      public 'meta_table' => string 'wp_postmeta' (length=11)
      public 'meta_id_column' => string 'post_id' (length=7)
      public 'primary_table' => string 'wp_posts' (length=8)
      public 'primary_id_column' => string 'ID' (length=2)
      protected 'table_aliases' => 
        array (size=1)
          0 => string 'wp_postmeta' (length=11)
      protected 'clauses' => 
        array (size=1)
          'wp_postmeta' => 
            array (size=5)
              ...
      protected 'has_or_relation' => boolean false
  public 'date_query' => boolean false
  public 'queried_object' => *uninitialized*
  public 'queried_object_id' => *uninitialized*
  public 'request' => string '
                    SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID
                    FROM wp_posts  INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
                    WHERE 1=1  AND ( 
  wp_postmeta.meta_key = 'post_views'
) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish')))
                    GROUP BY wp_posts.ID
                    ORDER BY wp_posts.post_date DESC
                    LIMIT 0, 9
                ' (length=352)
  public 'posts' => 
    array (size=0)
      empty
  public 'post_count' => int 0
  public 'current_post' => int -1
  public 'in_the_loop' => boolean false
  public 'post' => *uninitialized*
  public 'comments' => *uninitialized*
  public 'comment_count' => int 0
  public 'current_comment' => int -1
  public 'comment' => *uninitialized*
  public 'found_posts' => int 0
  public 'max_num_pages' => int 0
  public 'max_num_comment_pages' => int 0
  public 'is_single' => boolean false
  public 'is_preview' => boolean false
  public 'is_page' => boolean false
  public 'is_archive' => boolean false
  public 'is_date' => boolean false
  public 'is_year' => boolean false
  public 'is_month' => boolean false
  public 'is_day' => boolean false
  public 'is_time' => boolean false
  public 'is_author' => boolean false
  public 'is_category' => boolean false
  public 'is_tag' => boolean false
  public 'is_tax' => boolean false
  public 'is_search' => boolean false
  public 'is_feed' => boolean false
  public 'is_comment_feed' => boolean false
  public 'is_trackback' => boolean false
  public 'is_home' => boolean true
  public 'is_privacy_policy' => boolean false
  public 'is_404' => boolean false
  public 'is_embed' => boolean false
  public 'is_paged' => boolean false
  public 'is_admin' => boolean false
  public 'is_attachment' => boolean false
  public 'is_singular' => boolean false
  public 'is_robots' => boolean false
  public 'is_favicon' => boolean false
  public 'is_posts_page' => boolean false
  public 'is_post_type_archive' => boolean false
  private 'query_vars_hash' => string '2f64db49c5662c85abfbc42ba61e6b0c' (length=32)
  private 'query_vars_changed' => boolean false
  public 'thumbnails_cached' => boolean false
  protected 'allow_query_attachment_by_filename' => boolean false
  private 'stopwords' => null
  private 'compat_fields' => 
    array (size=2)
      0 => string 'query_vars_hash' (length=15)
      1 => string 'query_vars_changed' (length=18)
  private 'compat_methods' => 
    array (size=2)
      0 => string 'init_query_flags' (length=16)
      1 => string 'parse_tax_query' (length=15)
3
  • Set the post type in the args, it will default to post (as it has done).
    – t31os
    Commented Nov 6, 2022 at 13:10
  • Isnt a custom post type still a post though? Commented Nov 6, 2022 at 15:02
  • 1
    It's a type of post, but not a post of the post_type post.
    – t31os
    Commented Nov 6, 2022 at 18:12

1 Answer 1

0

A custom post_type is a type of post that has a unique name, like 'event' or 'book' depending on the type of object you are needing. This can be anything. The post_type 'post' is a built in WP post_type and concerns only blog posts in the "Posts" panel of the admin area.

Add 'post_type' => 'your_post_type_name_here' for the post_type you are needing to your WP_Query() arguments.

Hope this helps!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.