我似乎无法做到这一点-我正在尝试显示meta“featured\\u image”值设置为任意值的帖子。据我所知,它设置正确,但我有点不知所措。以下是我所拥有的:
<ul>
<?php
global $post;
$myposts = get_posts(array(
\'showposts\' => 5,
\'offset\' => 7,
\'meta_query\' => array(
array(
\'key\' => \'featured_image\',
\'value\' => \'\',
\'compare\' => \'NOT LIKE\'
)
)
));
foreach($myposts as $post) {
setup_postdata($post);
$meta = get_post_meta($post->ID, \'\');
?>
<li>
<a href=""><img src="<?php bloginfo(\'template_directory\'); ?>/timthumb.php?src=<?php if (isset($meta[\'featured_image\'][0]) && !empty($meta[\'featured_image\'][0])): echo $meta[\'featured_image\'][0]; else: ?>/wp-content/themes/SSv2011/images/review-default.gif<?php endif; ?>&w=84&h=60" alt="" /></a>
</li>
<?php unset($myposts); ?>
<?php } ?>
</ul>
已更新以显示整个查询。有什么想法吗?:\\
更新到WP\\u Query,我会让帖子出现,但它们并不是唯一在“featured\\u image”中包含内容的帖子。有什么想法吗?新查询:
<?php
$args = array(
\'showposts\' => 5,
\'meta_query\' => array(
array(
\'key\' => \'featured_image\',
\'value\' => \'\',
\'compare\' => \'!=\'
)
)
);
$ft_pagination = new WP_Query( $args );
?>
<?php while ($ft_pagination->have_posts()) : $ft_pagination->the_post(); ?>
<?php $ftimage = get_post_meta(get_the_id(), \'featured_image\', TRUE); ?>
<li>
<article>
<a href="">
<?php if ($ftimage): ?>
<img src="<?php bloginfo(\'template_directory\'); ?>/timthumb.php?src=<?php echo $ftimage; ?>&w=84&h=60" alt="" />
<?php else: ?>
<img src="<?php bloginfo(\'template_directory\'); ?>/timthumb.php?src=/wp-content/themes/ssv/images/review-default.gif&w=84&h=60" alt="" />
<?php endif; ?>
</a>
</article>
</li>
<?php
endwhile;
wp_reset_query();
?>
SO网友:t31os
首先,您的get_post_meta
电话没有钥匙,不是吗get_post_meta( $post->ID, \'featured_image\', true )
或get_post_meta( $post->ID, \'featured_image\', false )
如果需要多个值。
此外,您正在处理get_post_meta
在这里调用,就像它有一个值数组一样$meta[\'featured_image\'][0]
, 然而,您还没有指定密钥,这意味着在该点上不太可能包含任何内容。
我怀疑钥匙在get_post_meta
通话是主要问题。
另外,我建议回到!=
操作人员NOT LIKE
不太适合空字符串比较,想象一下SQL的外观。
WHERE meta_value NOT LIKE \'%%\'
其中,使用不等于比较,我们得到。。
WHERE meta_value != \'\'
。。这(我相信)正是我们想要检查的,一个值不是空值的元字段。