Как сделать свой loop в вордпрессе.
26.06.09 / Категории Uncategorized | Оставить комментарийБывает так что надо добавить в нескольких местах получение постов на странице. И если использовать query_posts(“cat=3″); в сайдбаре, а то у вас на главной будут только посты из 3 категории. Вызов query_posts() собьет массив выбранных постов для главной.
Для того чтобы создавать несколько выборок постов, можно использовать new WP_Query();
<?php
$recentPosts = new WP_Query(); // задаем новый обьект выборки постов.
$res = $recentPosts->query(‘cat=8&showposts=100′); // получаем посты из категории 8 максимум 100 штук.
if($res)
{
?>
<?php while ($recentPosts->have_posts()) : $recentPosts->the_post(); ?>// для каждого полученного поста.
<?php the_title(); ?> // выводим Имя.
<?php the_content(); ?> // выводим Контент
<?php edit_post_link(‘Edit this block’, ‘<p>’, ‘</p>’); ?> // линк на редактирование
<?php endwhile; ?> // конец цикла.
Этот код расположенный в сайдбаре, не собьет ваш главный цикл выводки постов.
Чтобы низлежащий код, показывал данные текущей страницы, контент или тайтл,
нужно вызвать функцию wp_reset_postdata();
Код получения кастом поста, не сбивающий стандартный цикл wordpress.
Да, если у вас код сайдбара идет после выводка постов, то посты можно получить стандартным способом и это тоже будет работать. $posts = query_posts(‘cat=8′);
Таким образом с помощью класса WP_Query() можно организовать несколько lopps на странице.
$customPostQuery = new WP_query(); $customPosts = $customPostQuery->query('name=sidebar-block&post_type=content'); if ($customPosts) : while ($customPosts = $customPostQuery->have_posts()) : $customPosts = $customPostQuery->the_post(); the_content('Read More'); edit_post_link('Edit', '<span class="edit-link">', '</span>' ); endwhile; endif; wp_reset_postdata();
Вы можете сослаться на эту статью:
http://www.rantiev.com/custom-loop/trackback/