Leave a Reply

2 comments

  1. The WP_Query object accepts a post meta argument. Generally speaking you want to do the following:

      $my_query = new WP_Query( 
        array(
          'post_type' => 'post',
          'meta_query' => array(
            array(
              'key' => 'project_cat',
              'value' => 'my-value',
            )
          ),
    
            // Other query properties
        ) 
      );
    

    Where ‘my-value’ is your ‘specified value’.

    Example usage:

      add_action( 'pre_get_posts' , 'my_pre_get_posts' );
    
      function my_pre_get_posts( $query ) {
    
        // Check this is main query and other conditionals as needed
        if( $query->is_main_query() ) {
            $query->set( 
              'meta_query', 
              array( 
                array(
                  'key' => 'project_cat',
                  'value' => 'my-value'
                )
              )
            );
        }
    
      }
    

    See WP_Query, pre_get_posts. All conditionals are available to you. Currently this runs on every main query – which you probably don’t want.

    Alternatively you can use query_posts (a simpler, but much less efficient way) to alter the query for only a specific instance in a template.