10 примеров использования loop в wordpress

wp-code_nLoop это один из самых важных частей кода в блоге wordpress. Фактически, loop это то, что позволяет вам брать инфу из базы данных и переводить её графически на экран. Если знать как правильно использовать loop, можно получить невероятные результаты. Примеров очень много, начиная с получения писем и заканчивая списками категорий и авторов.

В этой статье будут приведены примеры 10-ти вариантов использования loop, которые сделают ваш блог более практичным и интересным.

1. Вывод постов опубликованных между двумя датами.

Проблема
The loop и query_posts () функция WordPress позволяют легко найти список постов опубликованных в определённое время. К сожалению, получить посты между 17 числом марта и 3-м мая не так легко.


Решение
Просто вставьте следующий код там, где хотите показать список постов опубликованный между двумя датами.
Да, и не забудьте поменять мои даты на свои.)

  = '2009-03-17' AND post_date <= '2009-05-03'";
    return $where;
  }
add_filter('posts_where', 'filter_where');
query_posts($query_string);
while (have_posts()) :
      the_post();
      the_content();
endwhile;  

?>

2. Использование более одного loop на странице не дублируя посты.

Проблема


Многие современные темы или шаблоны и все темы «magazine» используют по крайней мере два loop на главной странице блога; они могут использоваться, например, для сектора “последних постов” . В то время как возможно использовать два loop, без повторения постов, вот пара таких примеров.

Решение
1.Давайте начнём с первого loop. Трудного тут ничего нет: мы только собираемся взять восемь последних постов, используя параметры показания постов. Откройте index.php , и вставьте код, чтобы вывести ваши «последние» посты:

  


2.Теперь пришло время применить второй loop и получить все посты, исключая те, которые мы уже вывели в первом loop:

   $ids));
while (have_posts()) : the_post();
the_title();
the_content();
endwhile;
?>

3. Вставка рекламного блока после первого поста.

Проблема
Реклама – хороший способ заработать на своём блоге. Но что получить рекламодателей, реклама должна быть доступна для пользователя. Много блоггеров показывают рекламу в сайдбаре ,в нижнем колонтитуле или в заголовке, эти места не всегда популярны. Чтобы получить больше кликов и соответственно больший доход с рекламы, надо вставлять рекламу после первого поста. Давайте попробуем это реализовать в wordpress с помощью loop.


Решение
Просто используйте следующий loop вместо своего. Не забудьте вставить код рекламы в 6 строчку:





  
          //вставляйте свой код сюда


          
     


          
  


4.Получение постов с определёнными значениями и Custom Field.

Проблема


Из-за популярности custom fields в WordPress вы когда нибудь захотите вывести список постов с определенными значениеми и custom fields. В то время как есть простое решение для тех, кто разбирается в WordPress, а у новичков всегда появляются вопросы на эту тему. Так, вот есть правильный и простой способ сделать это.

Решение
Это не трудно ваще. Мы только должны использовать функцию query_posts () с параметрами meta_key и meta_value :




5. Вывод списка будущих постов

Проблема
Благодаря опции “schedule post”, наш любимый wordpress позволяет нам писать посты и помечать их, чтобы они были опубликованы позже. Чтобы удостовериться, что ваши читатели возвращаются к вашему блогу или подписались на RSS, список ваших будущих постов будет хорошим нововведением.


Решение


  


        



No future events scheduled.


6. Вывод постов, которые были опубликованы год назад.


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

Решение
Если ваш блог относительно стар, почему бы не поставить на сайте блок который был выводил посты опубликованные более чем год назад? Сделать этого просто. Только вставьте следующий код в свой сйдбар блога или в single.php :


7. Использование loop чтобы создать шаблон страницы «Архив».

Проблема
Как отмечено в предыдущем пункте, проблема в блогах состоит в том, что трудно для читателей найти содержание последних постов.

Чтобы помочь своим читателям, найти то, что они ищут, админ создал шаблон страницы WordPress, который отображает список всех постов, которые когда-либо издавались на этом блоге. Вы можете видеть, демку этого кода на WpRecipes.

Решение

  

  

get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"); if (0 < $numposts) $numposts = number_format($numposts); ?>


    
  • :



8. Создание своего собственного loop используя wp_query.


Проблема
Класснический loop WordPress, который чаще всего используется в шаблонах блогов, очень простой и человекопонятен. Но очень часто, особенно используя заказные loop (например, в сложных шаблонах «magazine»), вы рискуете встретиться проблемами сброса, смещения, недопустимыми тэгами и другими ошибками. Как я однажды встретился используя одну из таких тем в своём блоге.

Решение
Решение состоит в том, чтобы использовать wp_query и создать свой собственный loop:

query('showposts=5');  

while ($myPosts->have_posts()) : $myPosts->the_post(); ?>
   the_title();
   the_content();
endwhile;  

?>

Пояснение кода


Код отображает пять последних постов. Подробное описание:
Строка 2, создал новый объект WP_Query, назвал $myPosts.
Строка 3, выполнял запрос, используя параметр showposts, чтобы вывести только пять последних постов.
Строка 5, начало loop.
Строка 6 и 7, просто добавляем описание поста (заголовок и сам контент)
Строка 8, конец loop.

Если Вы хотите изменить количество отображаемых постов, просто изменить значение параметра showposts в строке 3.

9. Показывать последние, важные «sticky» посты.

Проблема
Добавленные в WordPress 2.7, важные «sticky» или липкие посты – очень классная особенность нашего всеми любимого движка. Много пользователей WordPress спрашивает, как получить только важные посты в loop.

Решение
Чтобы отобразить пять новых важных постов, только вставьте следующий код где-нибудь в файлы вашей темы. Если Вы хотите изменить количество отображаемых постов, измените 5 на требуемое значение в строке 4:

 $sticky, 'caller_get_posts' => 1 ) );  

if (have_posts()) :
    while (have_posts()) : the_post();
        the_title();
        the_excerpt();
    endwhile;
endif;  

?>

10. Вывод loop картинок.

Проблема
В настоящее время, большинство блогов посты отображаются вместе с картинками на главной странице. Как насчёт того, чтобы быть более оригинальным и продвинутым с классной страницей «галереи», внося в список фотки из ваших последних постов, и отображая последнее изображение каждого поста? Конечно, мы можем легко это сделать с custom fields; но верьте вы этому или нет, зcustom fields ненужны.

Решение
Чтобы создать наш loop из фотокй, нам сначала нужна функция PHP, которая может захватить первое изображение от каждого поста и вернуть его URL. Чтобы сделать это, вставьте следующую функцию в своем functions.php файле. Не забывайте определить фото по умолчанию в строке 10:

/i', $post->post_content, $matches);
  $first_img = $matches [1] [0];  

  if(emptyempty($first_img)){ //Defines a default image
    $first_img = "/images/default.jpg";
  }
  return $first_img;
}

После того как сохранили functions.php, можем запускать наш loop.


        
        <?php the_title(); ?> 
    endwhile;
endif;
?>

Собственно это всё о чём я хотел написать. Удачи в изменениях ваших блогов…)

источник

Похожие публикации

.

загрузка...

Если вам понравилось, подпишись на наш RSS

Читать в Яндекс.Ленте Add to Google Reader or Homepage

11 комментариев

  1. Можно и легче это сделать

    • Что именно?
      Если вам не трудно пишите подробнее что можно сделать легче, а ещё лучше с примерами или хотя бы с описанием…

  2. Очень интересный материал! Добавил в закладки!
    Спасибо огромное автору! Редкий и полезный материал.
    Все пункты, безусловно, очень полезны при продвинутом программировании шаблонов.
    Однако, ответа на свой вопрос, я так и не нашел.

    Как вывести последние посты в случайном порядке за последние 15 дней?

    • А никто не знает плагин, чтобы реализовать п.3 из статьи без изменения кода?

      • Я думаю врядли…. А как????? Все равно нада менять, если ты хоть что нибудь хочешь поменять…. там даже ты не меняшь , а добавляешь и т.д.

  3. Огромное человеческое спасибочки!

  4. 2 день думаю над этим… по поводу 2 идеи, разбить луп на 2 части,
    вы сами разбирали все выше приведённые примеры?

  5. о черт!! все заработало… но на стандартном шаблоне =\ ладно спасибо за перевод отличная статья

  6. ёпт, подскажи чего может не хватать? если я вставляю просто в голый index.php нечего больше не подключая, что бы проверить работоспособность?

оставить комментарий