• Resolved Beee

    (@beee)


    i’ve checked many topics but I can’t seem to get the query I want to…

    I want to query posts from all categories except 3, where meta_value has NO VALUE ENTERED in meta_key shop.

    according to http://codex.wordpress.org/Function_Reference/query_posts#Custom_Field_Parameters
    this should work

    query_posts('posts_per_page=1&cat=-1,-24,-39&meta_key=shop&meta_compare=!=&meta_value=X');

    I even tried it with an array

    'category__not_in' => array(1,24,39),
    'meta_key' => 'shop',
    'meta_compare' => '!=',
    'meta_value' => 'X',
    'post_type' => 'post',
    'post_status' => 'publish',
    'posts_per_page' => 1

    but i can’t get the proper output, either it shows nothing, or it shows the post I want to hide…..

    if anyone can tell me what i did wrong….

Viewing 3 replies - 1 through 3 (of 3 total)
  • Don’t think you can check for the a non-existing custom field with query_posts. Might need something like this:

    <?php
    $args=array(
      'category__not_in' => array(1,24,39),
      'post_type' => 'post',
      'post_status' => 'publish',
      'posts_per_page' => -1,
      'caller_get_posts'=> 1
    );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
      echo 'List of Posts';
      while ($my_query->have_posts()) : $my_query->the_post();
        $shop = get_post_meta($my_query->post->ID, 'shop', true);
          if (!$shop) {
    ?>
          <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
          <?php
        }
      endwhile;
    }
    wp_reset_query();  // Restore global post data stomped by the_post().
    ?>
    Thread Starter Beee

    (@beee)

    hi michael, i think i’ve tried something similar, where it tests for output but I end up with the post that should be hidden or none at all…

    i made a workaround which is 180 degrees the other way round… which works but not perfectly so i’ll try to add this code later today…

    Thread Starter Beee

    (@beee)

    I now use the code

    $shops = new WP_Query('post_type=post&meta_key=shop&meta_value=' . $stad . '&cat=42&orderby=title&order=ASC');

    $stad is set in a custom field….

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Exclude posts in query by meta’ is closed to new replies.