获取所有帖子,如果帖子中具有相同的自定义字段值

时间:2019-03-26 09:42:58

标签: wordpress custom-post-type custom-fields

尝试获取所有具有与metavalue相同的邮政编码的帖子。预先感谢您的帮助。

<?php
                 $query = new WP_Query( array(
                         'post_type'=> array('service'),
                         'posts_per_page' => -1,
                         'meta_query' => array( array(
                              'key'=> 'zipcode',
                              'value'=> ','.$zip.',',
                              'compare'=> 'LIKE'
                             ) )
                         ));                 
?>      

    <?php if ( $query->have_posts() ) :while ( $query->have_posts() ) : $query->the_post();  ?>
           <h3><?php the_title(); ?></h3>
    <?php endwhile; // end of the loop. ?>
    <?php wp_reset_query(); ?>
    <?php else: ?>
          No results found.
    <?php endif; ?>
邮政编码是数字,例如12345。如果帖子在自定义字段中的值为12345。那么它将显示所有具有12345值的帖子。上面的代码工作正常,但只显示一个帖子。

3 个答案:

答案 0 :(得分:1)

以下代码将适合元查询。

  $query_args = array(
        'post_type'   => 'service',
        'posts_per_page' => -1,
        'meta_query'  => array(
            array(
                'value'   => $zip,
                'compare' => 'LIKE',
                'key'     => 'zipcode',
            ),
        )
    );
   $query = new WP_Query($query_args);
   <?php if ( $query->have_posts() ) :while ( $query->have_posts() ) : $query->the_post();  ?>
       <h3><?php the_title(); ?></h3>
   <?php endwhile; // end of the loop. ?>
   <?php wp_reset_query(); ?>
   <?php else: ?>
      No results found.
   <?php endif; ?>

希望有帮助。

答案 1 :(得分:1)

这对我有用:

$popularCourses = new WP_Query( 
    array( 
        'post_type'         => 'courses', 
        'posts_per_page'    => -1,
        'post_status'       => 'publish',
        'meta_key'          => 'course-is-promoted',
        'meta_value'        => 'Yes',
        'orderby'           => 'date',
        'order'             => 'DESC'
    )
);  

答案 2 :(得分:0)

有两种方法。

看完这段代码后,我建议您只是访问link以便更好地理解。

(1)

    $args = array(
   'meta_query' => array(
       array(
           'key' => 'Your_key',//Enter your meta key here
           'value' => 'professionnel',//Enter you meta value
           'compare' => '=',//Comparison type (option filed) .
       )
   )
);
$query = new WP_Query($args);

(2)

$output_loop = get_posts( array(
    'meta_key'   => 'Your_key',//Meta key
    'meta_value' => 'Your_value',//Meta value
) );

现在只需print_r($output_loop)即可获得更好的理解。