2011-01-21 2 views
0

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


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

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

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

+0

Что относительно RegExp? ;-) – thedom

+0

Будет ли RegExp позволять мне захватывать только несколько сообщений? Могу ли я указать идентификатор сообщения в параметре? – TopChef

ответ

0

Вы можете сделать это с помощью двух способов:

function post_photo_count_attachments($post_id) { 

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

    return($attachments[0]); 

}

Или методом/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

У меня есть код, похожий на работу в моей сети в цикле. Это должно хорошо работать для вас!

 $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); 
     } 
    } 

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

+0

Спасибо. Как я смогу использовать этот код для извлечения изображения из сообщения. Скажем, идентификатор сообщения 3234 ... мог ли я использовать этот идентификатор и сделать изображение на первой странице? – TopChef

+0

Легко! $ my_id = 3234; $ post = get_post ($ my_id); – miduga