我有一个功能,可以在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功能来实现这一目标?
答案 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,那么我想这可行。如果它无法解决,请回复我。