问题描述
我直接从 codex 使用这个代码。
function echo_first_image ($postID)
{
$args = array(
'numberposts' => 1,
'order'=> 'ASC',
'post_mime_type' => 'image',
'post_parent' => $postID,
'post_status' => null,
'post_type' => 'attachment'
);
$attachments = get_children( $args );
//print_r($attachments);
if ($attachments) {
foreach($attachments as $attachment) {
$image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) : wp_get_attachment_image_src( $attachment->ID, 'full' );
echo '<img src="'.wp_get_attachment_thumb_url(%20$attachment->ID%20).'" class="current">';
}
}
}
我在这个循环中称之为 echo_first_image ($post->ID);
该函数确实调用,但没有得到输出… 至于我可以看到没有什么在 $attachments
我在我正在使用的帖子中有一个图像。它不是一个特色的图像或在画廊,只是在职位。
我做错了什么,还是有代码首先出错了?
最佳解决方案
如果要显示插入到您的内容中的图像 (例如,热链接的图像),则必须使用像 (source)这样的功能:
添加 functions.php:
function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=['"]([^'"]+)['"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if(empty($first_img)){ //Defines a default image
$first_img = "/images/default.jpg";
}
return $first_img;
}
然后将<?php echo catch_that_image() ?>
放在要显示图像的位置。
注意:刚刚放置在您的内容中的热链接图像无法设置为精选图像,双打 WordPress 的功能。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。