我的帖子有一个基本的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为空,则加载静态默认图像。
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) )
;