Захватить изображение WordPress Post и показать его? - PullRequest
0 голосов
/ 21 января 2011

Есть ли способ получить первое изображение поста и отобразить его в виде эскиза ссылки на сам пост на главной странице? Я не могу понять это. Предпочитаю не использовать функцию рекомендуемого изображения. Есть ли обходной путь? Любая помощь будет высоко ценится.


Смогу ли я использовать следующий код, чтобы получить то, что я хочу? Не похоже, что я могу указать идентификатор сообщения, но, возможно, я ошибаюсь?

http://www.wordimpressed.com/wordpress/get-the-first-image-from-a-post-and-display-it/

Моя главная задача - захват нескольких постов и возможность их отображения на главной странице / главной странице. Это возможно?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2012

Вы можете сделать это двумя способами:

function post_photo_count_attachments( $post_id ) {

    $attachments = get_children(
        array( 'post_parent' => $post_id ) 
    );

    return( $attachments[0] );

}

Или методом Query / XPath:

function post_photo_count_xpath( $post_id ) {
    global $wpdb;

    $post_id_safe = intval( $post_id );

    $html = $wpdb->get_row(
        "select * from {$wpdb->posts} where ID={$post_id_safe} limit 1"
    );

    $doc = new DOMDocument();
    @$doc->loadHTML( $html->post_content );
    $path = new DOMXpath( $doc );
    $images = $path->query( "//img" );

    return( $images->item(0)->getAttribute('src') );
}

print_r () это возвращает для более подробной информации.

0 голосов
/ 21 января 2011

У меня есть аналогичный код, работающий в моей сети в цикле.Он должен хорошо работать для вас!

        $content = $post->post_content;
    $content = preg_replace('/\[.*\]/', '', $content);
    $image = '';
    $x = stripos($content, '<img');
    if ($x !== false) {
        $x = stripos($content, 'src="', $x);
        if ($x !== false) {
            $x += 5;
            $y = strpos($content, '"', $x);
            $image = substr($content, $x, $y-$x);
        }
    }

Он прекрасно работает для меня, поэтому, если у вас есть проблемы, пожалуйста, сообщите мне.;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...