仅当存在POST元数据时才显示循环

时间:2012-01-22 作者:andresmijares

我希望只在自定义字段数据存在时显示以下循环,如果不存在,我不想显示任何内容。

 <?php while (have_posts()) : the_post(); $data = get_post_meta( $post->ID, \'key\', true );?>
  <!-- info --> 
<?php endwhile; ?>
有什么猜测吗?

提前感谢。

2 个回复
最合适的回答,由SO网友:mor7ifer 整理而成

如果您想避免预处理数据,这将起作用(尽管这绝对是一种快速而肮脏的方法):

<?php while (have_posts()) : the_post(); ?>
    <?php $data = get_post_meta( $post->ID, \'key\', true ); ?>
    <?php if( $data != \'\' ) : ?>
        <!-- info --> 
    <?php endif; ?>
<?php endwhile; ?>
否则(如果您需要最好的功能,这绝对是更好的方式),您可以通过数据进行初步循环(甚至使用meta获取不同的数据),确定是否有任何帖子包含meta,然后有条件地执行循环。

SO网友:vmassuchetto

您可以更改query_posts 甚至不更改模板文件的行为。

function custom_query($request) {
    $params = array(
        \'meta_key\' => \'custom_field_name\',
        \'meta_value\' => \'custom_field_value\'
    );
    return array_merge($request, $params);
}
add_filter(\'request\', \'custom_query\');

结束

相关推荐