0

今日、私は次のコードを使用してワードプレスで最も人気のある投稿を表示しようとしています:

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];
    }

これを達成できる方法はありますか??

4

1 に答える 1

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 ループで表示されるとします。

その関連する投稿で、投稿に入力した最初の画像が表示されます。

ありがとうございました。

于 2013-06-05T10:50:53.550 に答える