如果图像metabox没有值,则有条件地加载默认静态图像

时间:2015-02-25 作者:Mohamed Mokhtar

我的帖子有一个基本的while循环

<?php

         if ( have_posts() ) : while ( have_posts() ) : the_post();

         $title = get_the_title();

         $article = apply_filters( \'the_content\', get_the_content() );

         $date = get_the_date();

         $source = get_post_meta( get_the_ID(), \'_articles_url\', true );

         $img = wp_get_attachment_image( get_post_meta( get_the_ID(), \'_articles_image_id\', 1 ), \'full\', 1, get_post_meta($attachment_id, \'_wp_attachment_image_alt\', true) );


    ?>
我想编写一个条件来检查$img是否有值,如果$img为空,则加载静态默认图像。

1 个回复
SO网友:Travis Seitler

根据the get_post_meta() function reference 在WordPress Codex中,“如果没有要返回的内容,函数将返回一个空数组,除非$single设置为true,在这种情况下,将返回一个空字符串。”

这意味着我们可以使用ternary operators 检查是否get_post_meta() 返回一个空字符串,如果是,那么我们将指定静态图像。我们只需要修改$img 变量定义如下:

$img = 
  ( \'\' == get_post_meta($attachment_id, \'_wp_attachment_image_alt\', true) )
  ?
  get_template_directory_uri() . \'/images/default-img.png\' // updated example per comment
  :
  wp_get_attachment_image( get_post_meta( get_the_ID(), \'_articles_image_id\', 1 ), \'full\', 1, get_post_meta($attachment_id, \'_wp_attachment_image_alt\', true) )
  ;

结束

相关推荐

在子主题函数中加入两个以上的CSS样式。php

我刚刚开始使用WordPress,并了解了儿童主题功能。所以这是我第一次这样做,我遇到了一些问题。当我尝试预览子主题时formatting 整个场地的messed up.我觉得是我的functions.php 因为我只排了一个队style.css 当我有三个的时候。其他两个CSS文件只有几行代码。我可以把它们放在style.css 但我不想修改原始文件,这就是我使用子主题功能的原因。我也在这里学习更多关于这方面的知识,以供将来参考:)这是我的functions.phpadd_action( \'wp_en