如何检查该Widget查询中是否存在自定义字段

时间:2012-01-24 作者:Dean Elliott

如何将此(或类似内容)包括在内

<?php if ( get_post_meta($post->ID, \'url\', true) ) { ?>

        <a href="<?php echo get_post_meta($post->ID, "url", $single = true); ?>"><?php the_post_thumbnail(\'\');?></a>

<?php } else { ?>

        <?php the_post_thumbnail(\'\');?>

<?php } ?>
进入这个简单的小部件查询?

query_posts(\'post_type=sponsors&meta_key=_vof_sponsor_level&meta_value=Gold\');
if (have_posts()) : 
    echo "<div class=\'imageshadow sponsorwidgetslides\'>";
while (have_posts()) : the_post();
    the_post_thumbnail(\'sponsorwidget\');
endwhile;
    echo "</div><!--/.imageshadow-->";
echo "<a class=\'widgetlink\' href=\'";
bloginfo(\'url\');
echo "/sponsors\'>View all Sponsors &raquo;</a>";
endif; 
wp_reset_query();
因此,基本上,如果自定义字段“url”存在,它将输出封装在锚定标记中的特征图像,但如果自定义字段不存在,它只输出特征图像。

此外,我知道使用query\\u posts并不理想,get\\u posts会更好,但我在这里接受命令。

1 个回复
最合适的回答,由SO网友:Stephen Harris 整理而成

我现在不能测试它,但以下应该可以工作。。。

    query_posts(\'post_type=sponsors&meta_key=_vof_sponsor_level&meta_value=Gold\');
    if (have_posts()) : 
        echo "<div class=\'imageshadow sponsorwidgetslides\'>";
        while (have_posts()) : the_post();
           if ( get_post_meta($post->ID, \'url\', true) ) { ?>
             <a href="<?php echo get_post_meta($post->ID, \'url\',true); ?>"><?php the_post_thumbnail(\'sponsorwidget\');?></a>

          <?php } else {
              the_post_thumbnail(\'sponsorwidget\');
            }
        endwhile;
        echo "</div><!--/.imageshadow-->";
        echo "<a class=\'widgetlink\' href=\'";
        bloginfo(\'url\');
       echo "/sponsors\'>View all Sponsors &raquo;</a>";
   endif; 
wp_reset_query();
我没有遇到任何问题$post->ID, 但根据Shane刚才的评论,您可以将其更改为get_the_ID()

结束