Wordpress在帖子上获得第一个附加图像

时间:2013-06-04 03:10:49

标签: php wordpress

今天我一直在尝试使用以下代码在wordpress中显示最受欢迎的帖子:

http://pastebin.com/TjJTiiTZ

它很好但是它不允许我抓住帖子上的第一个附加图像。我需要这样做才能从包含图像的几个自定义字段中获取图像。

我尝试使用以下代码(实际上适用于其他自定义)来获取帖子上的第一个附加图像,但我无法使其正常工作。

$p = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'numberposts' => 1,
    'order' => 'ASC',
    'orderby' => 'menu_order ID',
    'post_status' => null,
    'post_parent' => $post->ID
);

$thumb = get_posts($p);
    if ($thumb) {
    $imgsrc = wp_get_attachment_image_src($thumb[0]->ID, 'thumbnail');
    $img = $imgsrc[0];
    }

有什么办法可以实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

您可以使用此代码获取帖子第一个附件图片:

$catposts = get_posts('category='.$category_id."&order=DESC&numberposts=".$NUMBEROFPOSTS);
function catch_that_image($_catposts)
{
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $_catposts->post_content, $matches);
$first_img = $matches[1][0];
return $first_img;
}

$j=0;
foreach ($catposts as $item) :
    $get_contents = $item->post_content;
    $regex_pattern = "/<a href=\"(.*)\">(.*)<\/a>/";
        $output = preg_match_all($regex_pattern,$item->post_content, $matches);
    echo '<img src="'.catch_that_image($catposts[$j]).'" alt="" border="0px" />';
    $j++;
endforeach;

其中$ category_id是特定的类别ID。假设你有一个类别id = 26,那么所有26个类别的帖子都显示在foreach循环中。

在帖子中输入的相关帖子第一个图像显示。

谢谢。