WordPress — выводим картинки к постам.

Очень часто при создании своего блога на WordPress, у вебмастера возникает желание вывести анонсы своих постов в виде тизеров (т.е. в виде картинок). Причем анонсы не всех постов, а каких-то именно. Сделать это не так уж и сложно.
Давайте разберемся по порядку.
1. Для начала нужно определить, картинки из каких постов мы хотим вывести. Для этого нам понадобится функция query_posts. Параметров у нее много, с помощью этой функции можем вытащить и посты из определенной категории, и определенные посты, отсортированные по дате или алфавиту, в хронологическом и обратном порядке, задать количество постов. Описывать эти параметры в своей статье я не буду, так как это будет переписывание того ,что уже сказано. Наберите эту функцию в поисковике и найдете всю нужную информацию.В нашем примере будем считать, что нам надо вывести 5 картинок из 3-й категори, т.е. мы мспользуем функцию вида query_posts(‘cat=3&showposts=5’)
2. Теперь следующий момент. Эта функция работает перед циклом, поэтому пишем так:

<?php query_posts(‘cat=3&showposts=5’);
if (have_posts()) : while (have_posts()) : the_post(); ?>

Код наших картинок

<?php endwhile; ?>

<?php endif; ?>
Но есть еще один момент. При вставке этого кода на страницу надо обязательно почистить запрос query. Поясню. Например, на странице, где вы хотите вывести картинки, выводятся посты из категории 4, тогда Ваши картинки не выйдут, так как Вам нужна категория 3. Ваша функция query_posts сужает запрос, а не заменяет его. Поэтому перед кодом, который мы написали, надо добавить: <?php wp_reset_query(); ?> и тоже самое добавить в самый конец кода. Вот теперь у нас все чистенько и можно начинать выводить картинки.
3. Получить вложения к посту(картинки — это и есть вложения):
$image = get_children(array(
‘post_type’ => ‘attachment’,
‘numberposts’ => 1,
‘post_status’ => null,
‘post_parent’ => $post->ID,)))
количество 1, пост, к которому мы ищем вложения $post->ID
4. Получим адрес картинки, прикрепленной к посту
foreach($image as $image) { $attachment=wp_get_attachment_image_src($image->ID, $size);
$image = $attachment[0];}
5. Теперь ее можно вывести
<img src=»<?php echo $image; ?>» valign=»top» align=»left» alt=»<?php the_title(); ?>» title=»<?php the_title(); ?>» width=80> <?php } endif;?>
6. Ну и добавили ссылку на пост с картинки

<a href=»<?php the_permalink() ?> вывод картинки</a>
Вот и все. Итого получаем примерно такой код:

<div class=»widget»>
<h2 align=»center»>Популярное</h2>
<?php wp_reset_query(); ?>
<?php query_posts(‘cat=3&showposts=5’);
if (have_posts()) : while (have_posts()) : the_post(); ?>

<div align=»center»>
<a href=»<?php the_permalink() ?>»>
<?php
$image=»;
if ($image = get_children(array(
‘post_type’ => ‘attachment’,
‘numberposts’ => 1,
‘post_status’ => null,
‘post_parent’ => $post->ID,)))
foreach($image as $image) { $attachment=wp_get_attachment_image_src($image->ID, $size);
$image = $attachment[0];}
if($image !== ») { ?>
<img src=»<?php echo $image; ?>» valign=»top» align=»left» alt=»<?php the_title(); ?>» title=»<?php the_title(); ?>» width=80> <?php } ?></a>

<div class=»clear»></div>
</div>
<?php endwhile; ?>
<?php endif; ?>
<?php wp_reset_query(); ?>

Комментарии на Facebook