在Else语句中显示特色图像

时间:2013-10-14 作者:luckyrajiv

这就是我加载后期缩略图图像的方式?

如果没有图像,我想显示默认图像怎么办?

我怎样才能证明这一点。

下面是我用来显示缩略图的代码。

        $html .= \'<div class="post event" id="post-\'.$post->ID.\'">

                    <a href="\'.get_permalink($post->ID).\'"> \'.get_the_post_thumbnail().\' </a>

                    <div class="content">
                        <span class="title">
                            <a title="\'.$post->post_title.\'" href="\'.get_permalink($post->ID).\'">\'.$post->post_title.\'</a>
                        </span>                                             
                        <div class="addl-123">\';                            

                    $terms = wp_get_post_terms($post->ID, \'sublocation\');
                    if($terms)
                    {
                        $out = array();
                        foreach ($terms as $term)
                        {
                            $out[] = \'<a class="\' .$term->slug .\'" href="\' .get_term_link( $term->slug, \'sublocation\') .\'">\' .$term->name .\'</a>\';
                        }
                        //echo join( \', \', $out);
                        $html .= join( \', \', $out);
                    }

                    if($is_parent != 0)
   {
    $address = get_post_meta($is_parent,\'address\',true);
         }
   else
   {
    $address = get_post_meta($post->ID,\'address\',true);
         }
         if(!$address){ $address=\'-\'; }
   if($address && $address!="-"){$html .= "<b>".$address."</b>";}

    $html .= \'<p>Timinigs: \'.get_post_meta($post->ID, \'cstimings\', true). \' </p>\';

        $html .= \'</div>
在代码的第2行,我能够显示具有特色图像的帖子的缩略图。但其他帖子没有特色图片。所以,对于这样的帖子,我想显示默认图像。

我该怎么做?

3 个回复
SO网友:Chip Bennett

特色图像相关功能不提供任何定义默认/回退图像的方法。因此,你必须自己定义一个,例如。

<?php $featured_image = ( \'\' != get_the_post_thumbnail() ? get_the_post_thumbnail() : get_template_directory_uri() . \'/images/img_not_available.png\' ); ?>

<a href="<?php the_permalink(); ?>"><?php echo $featured_image; ?></a>
编辑三个更改:

更明确的条件。get_the_post_thumbnail() 返回空字符串,而不是false 如果找不到图像

  • 用您的图像更新了默认图像。注:使用get_template_directory_uri() 而不是get_stylesheet_directory_uri().
  • 清理了分散的PHP/HTML,以帮助消除语法错误。另请注意:示例代码假定循环中的上下文为。如果在循环外部使用,请相应修改。

  • SO网友:Brad Dalton

    此代码可从子主题函数文件中使用。

    此外,如果帖子中没有图像,您还可以设置默认回退:

        function wpforce_featured() {
          global $post;
          $already_has_thumb = has_post_thumbnail($post->ID);
              if (!$already_has_thumb)  {
              $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
                          if ($attached_image) {
                                foreach ($attached_image as $attachment_id => $attachment) {
                                set_post_thumbnail($post->ID, $attachment_id);
                                }
                           } else {
                                set_post_thumbnail($post->ID, \'414\');
                           }
                        }
      }  //end function
    add_action(\'the_post\', \'wpforce_featured\');
    add_action(\'save_post\', \'wpforce_featured\');
    add_action(\'draft_to_publish\', \'wpforce_featured\');
    add_action(\'new_to_publish\', \'wpforce_featured\');
    add_action(\'pending_to_publish\', \'wpforce_featured\');
    add_action(\'future_to_publish\', \'wpforce_featured\');
    
    来源:http://wpforce.com/automatically-set-the-featured-image-in-wordpress/

    SO网友:Toine

    像这样的?

    <?php if ( has_post_thumbnail()):
        the_post_thumbnail();   
    else: ?>
    <!-- Do default stuff here -->
    <?php endif; ?> 
    

    结束

    相关推荐

    在Functions.php中创建“无文件”页面模板

    (所谓“页面模板”,我指的是具有\"Template Name\" header 可在管理页面的“模板”下拉字段中选择。)在多个实例中,我构建了页面模板,可以通过挂接到\\u内容或pre\\u get\\u帖子或类似的内容来完成。这让我想知道是否有一种方法可以在functions.php 或者不创建主题文件本身的插件。我想这样做的原因:在我想到的场景中,我通常只是复制页面。php几乎一字不差。这意味着将来对页面的任何更改。php需要制作两次。随着儿童主题的更新,这更加令人痛苦</我喜欢“模板”字段U