如果特色图片不存在,则显示帖子内容

时间:2016-10-07 作者:Nancy

在决定问这个问题之前,我在这个论坛上搜索了一下,但没有找到我的问题的答案,尽管它看起来像是重复的。

无论如何,我制作了使用其特色图像的自定义帖子类型。现在,我想设置如果没有特色图片存在,显示帖子内容,我的意思是显示我帖子中的任何内容(在我的情况下,它是嵌入youtube视频)。

到目前为止,我添加了函数。php如下所示:

function zm_get_backend_preview_thumb($post_ID) {
    $post_thumbnail_id = get_post_thumbnail_id($post_ID);
    if ($post_thumbnail_id) {
        $post_thumbnail_img = wp_get_attachment_image_src($post_thumbnail_id, \'thumbnail\');
        return $post_thumbnail_img[0];
    }
}

function zm_preview_thumb_column_head($defaults) {
    $defaults[\'featured_image\'] = \'Image\';
    return $defaults;
}

add_filter(\'manage_posts_columns\', \'zm_preview_thumb_column_head\');

function zm_preview_thumb_column($column_name, $post_ID) {
    if ($column_name == \'featured_image\') {
        $post_featured_image = zm_get_backend_preview_thumb($post_ID);
            if ($post_featured_image) {
                echo \'<img src="\' . $post_featured_image . \'" />\';
            }

    }
}

add_action(\'manage_posts_custom_column\', \'zm_preview_thumb_column\', 10, 2);
}
在我想显示视频而不是特色图片的页面中,我有以下代码:

<?php
// WP_Query arguments
$args = array (
    \'post_type\'              => array( \'zm_gallery\' ),
);
// The Query
$query_gallery = new WP_Query( $args );

// The Loop
if ( $query_gallery->have_posts() ) {

    while ( $query_gallery->have_posts() ) {
        $query_gallery->the_post();

        echo \'<ul>\';
        echo \'<li>\';
        $name = get_post_meta($post->ID, \'ExternalUrl\', true);

        if( $name ) { ?>
            <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
           <?php
        } else {
            the_post_thumbnail();
        }   

        echo \'</li>\';
        echo \'</ul>\';
    }    
} else {
    if ( "" === $post->post_content ) {
        the_post_thumbnail();
    } else {
        the_content();
    }
}

// Restore original Post Data
wp_reset_postdata();
?>
非常感谢您的帮助。提前谢谢大家。

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

\\u post\\u缩略图将回显缩略图,因此可以尝试

if ( has_post_thumbnail() ) {
  the_post_thumbnail();
} else {
  the_content();
}
希望这有帮助

SO网友:Nancy

我意识到我需要显示帖子内容的页面上的代码有两个问题:

我写了以下内容:

    if ( "" === $post->post_content )
    {
         the_post_thumbnail();
    }
    else
    {
        the_content();
    } 
在错误的地方。

我应该把这句话放在下面:

if( $name ) { ?>
        <a href="<?php echo $name; ?>"target="_blank"><?php the_post_thumbnail(); ?></a>
        <?php } else {
    //MY CODE SHOULD GO HERE
} 
我应该在第1点下输入的唯一代码是:

the_content();
这让我得到了我想要的。问题解决了。我希望将来有人会觉得这很有帮助。P、 我尝试格式化答案,但出现了一些问题。我很乐意接受编辑,使它看起来像它应该的样子。