帖子内容中的默认特色图像

时间:2017-10-20 作者:Md. Amanur Rahman

我正在尝试从我的帖子内容中自动设置特色图像,如果帖子内容中没有图像,则自动设置默认特色图像。。

我尝试了来自不同来源的不同代码,但似乎没有任何效果。我的帖子内容图像是从其他来源设置的,这些图像不托管在我的网站wp媒体库中。这可能是个问题吗?

我有一个代码,在帖子保存后设置特色图片,这些图片在Wp库中。。但我的图片来自其他第三方soruce,并按如下方式设置

<img src="google.com/j.jpg" /> 或者像那样。。这些图像未托管在我的wp媒体库中。

如果你看到这个,你会有一个清晰的想法

enter image description here

所以最后我想要的是,为新创建的帖子和旧帖子设置一个自动从帖子内容中提取的特色图片,这些都已经存在了。。如果帖子内容中没有图像,那么只需设置一个默认图像,该图像可以是静态源。。

提前感谢

2 个回复
最合适的回答,由SO网友:Md. Amanur Rahman 整理而成

好吧伙计们。。我终于用下面的代码得到了它。

function wpse55748_filter_post_thumbnail_html( $html ) {

    // If there is no post thumbnail,
    // Return a default image
    global $post;
    $pID = $post->ID;
    $thumb = \'large\';
    $imgsrc = FALSE;
    if (has_post_thumbnail()) {
        $imgsrc = wp_get_attachment_image_src(get_post_thumbnail_id($pID),$thumb);
        $imgsrc = $imgsrc[0];
    } elseif ($postimages = get_children("post_parent=$pID&post_type=attachment&post_mime_type=image&numberposts=0")) {
        foreach($postimages as $postimage) {
            $imgsrc = wp_get_attachment_image_src($postimage->ID, $thumb);
            $imgsrc = $imgsrc[0];
        }
    } elseif (preg_match(\'/<img [^>]*src=["|\\\']([^"|\\\']+)/i\', get_the_content(), $match) != FALSE) {
        $imgsrc = $match[1];
    }
    if($imgsrc) {
        $imgsrc = \'<img src="\'.$imgsrc.\'" alt="\'.get_the_title().\'" class="summary-image" />\';
        $html = $imgsrc;
    }

    if ( \'\' == $html ) {
        return \'<img src="\' . get_template_directory_uri() . \'/images/default-featured-image.png" />\';
    }
    // Else, return the post thumbnail
    return $html;
}
add_filter( \'post_thumbnail_html\', \'wpse55748_filter_post_thumbnail_html\' );
在这里,我首先用regex搜索帖子内容,如果内容有任何类型,如果

SO网友:Den Isahac

我想这是您正在查找的内容,首先它会检查是否存在post缩略图,否则会显示一个回退图像。

<?php if(has_post_thumbnail()) : ?>
    <?php the_post_thumanail(); ?>
<?php else : ?>
    <img src="http://via.placeholder.com/1350x450"/>
<?php endif; ?>
Note: 替换图像srcelse 对静态资源的语句。

结束

相关推荐