在Wordpress中显示具有特定元值的帖子

时间:2014-03-23 14:52:21

标签: php wordpress

我有一个功能,可以在wordpress中显示自定义帖子类型的帖子:

代码:

<?php
 $args = array(
              'post_type' => 'todo_listing',
              'posts_per_page' => 4,
              'order' => 'asc',
              'meta_value' => '0'
              );
 $loop = new WP_Query( $args );
 ?>     

 <ul class="leftlist">

<?php
while ( $loop->have_posts() ) : $loop->the_post();
?>

        <li class="todo" id="<?php echo get_the_ID();?>" itemage="<?php echo get_post_meta(get_the_ID(),'_todotime',true)?>"><a href="javascript:;"<?php if($all_meta_for_user[get_the_ID()][0]){               
        ?>
        class="strike"

    <?php
}
?>
       >           
  <?php if($all_meta_for_user[get_the_ID()][0]){?>
            <span class="check_box cb"></span>
            <?php }else{?>
        <span class="uncheck_box cb"></span>
        <?php }?>   
        <p><?php the_title(); ?></p></a>           
        <?php
        endwhile;
        ?>            
        </ul>

这导致HTML呈现如下:

<li class="todo" id="1013" itemage=""><a href="javascript:;" class="">
    <span class="cb uncheck_box"></span>
    <p>Some Text here</p></a>
</li> 

<li class="todo" id="1013" itemage=""><a href="javascript:;" class="">
    <span class="check_box"></span>
    <p>Some Text here</p></a>
</li>

如果班级有span class="cb uncheck_box",则元值为0,如果span class="check_box",则元值为1。

我只想显示那些具有Meta Value 1的项目。如何修改上述wordpress功能来实现这一目标?

2 个答案:

答案 0 :(得分:2)

您只需要对查询进行一些小的更改,它应该全部修复。

$args = array(
              'post_type' => 'todo_listing',
              'posts_per_page' => 4,
              'order' => 'asc',
              'meta_query' => array(
                  array(
                      'key' => 'checkbox_meta',
                      'value' => '1',
                      'compare' => 'IN',
                      )
                  )
              );
$loop = new WP_Query( $args );

接受密钥checkbox_meta并检查它的值为1.如果不是,那么它不会获取数据。

因此,您应该将checkbox_meta设置为1来获得前4个。

Readmore:http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters部分'orderby' with 'meta_value' and custom post type

答案 1 :(得分:-1)

以下是您可以使用的代码:

<?php
$args = array(
          'post_type' => 'todo_listing',
          'posts_per_page' => 4,
          'order' => 'asc',
          'meta_value' => '0'
          );
 $loop = new WP_Query( $args );
?>     

<?php
while ( $loop->have_posts() ) : $loop->the_post();
?>
<?php if(get_post_meta(get_the_ID(), 'checkbox_meta', true) == 0) { ?>
<?php echo get_the_ID();?> <?php the_title(); ?>
<?php } ?>

<?php
endwhile;
?>  

我认为有一些细节你错过了,但假设代码<?php echo get_the_ID();?> <?php the_title(); ?>打印出给定的html,那么我想这可行。如果它无法解决,请回复我。