我该怎么做?:如果自定义帖子类型存在,回显它,否则不

时间:2011-12-01 作者:stacigh

我正在为我的wordpress网站创建搜索页面。我遇到的问题是,我的大多数文章都有显示特色图像的自定义帖子类型。问题是有些人没有。我试图弄清楚如何告诉我的循环,如果存在自定义post类型,则将其包括在内,如果不存在,则忽略该部分代码。这是我的代码:

    <div id="wrapper-article" class="grid_12">

    <?php 
        if(function_exists(\'wp_paginate\')) {
            wp_paginate();
        } 
    ?>

<?php if (have_posts()) : ?>

    <?php while (have_posts()) : the_post(); ?>

        <div <?php post_class() ?> id="archives">

            <h4><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h4>

            // HERE\'S THE STUFF THAT IS OPTIONAL

                <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo(url); ?><?php echo get_post_meta($post->ID, \'featured-image-large\', true); ?>" title="<?php echo get_post_meta($post->ID, \'featured-image-title\', true); ?>" /></a>

            // END OPTIONAL STUFF

                <?php the_excerpt(); ?>
                <a href="<?php the_permalink(); ?>" class="button-blue"><span>Continue Reading</span></a>

        </div>

    <?php endwhile; ?>

    <?php 
        if(function_exists(\'wp_paginate\')) {
            wp_paginate();
        } 
    ?>

<?php else : ?>

    <h2>No posts found.</h2>

<?php endif; ?>

</div><!-- end div#wrapper-article -->
您可以在此处查看测试站点搜索结果:http://testserver1.staceylanehosting.net/?s=jesus

前两个结果是没有关联图像的页面。其余的都是柱子。但也有一些帖子没有图片,我希望if-else语句也适用于这些帖子。

编辑:@andrewkthx:你的答案不完全正确,但它确实让我找到了正确的答案,所以感谢你的发帖。:)

正确的方法是:

<?php if ( get_post_meta($post->ID, \'featured-image-large\', true) ) : ?>

    <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo(url); ?><?php echo get_post_meta($post->ID, \'featured-image-large\', true); ?>" title="<?php echo get_post_meta($post->ID, \'featured-image-title\', true); ?>" /></a>

<?php endif; ?>

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

无需如此复杂,您可以使用has\\u post\\u缩略图功能

    <?php if(has_post_thumbnail()): ?>
      <a href="<?php the_permalink(); ?>"><img src="<?php bloginfo(url); ?><?php echo get_post_meta($post->ID, \'featured-image-large\', true); ?>" title="<?php echo get_post_meta($post->ID, \'featured-image-title\', true); ?>" /></a>

   <?php endif; ?>
瞧!=)

结束