Прежде чем я покажу готовый код, давайте подробнее рассмотрим, что имеется ввиду в заголовке и когда это лучше применять.
Вывести посты на странице в WordPress — это значит создать шаблон страницы (page template) и забацать туда цикл, query_posts.
Для чего нужно такое вытворять? Рассмотрим несколько вариантов:
query_posts('cat=3,4,5');
query_posts('post_type=artwork');
Вообще можно скомбинировать любые условия, используя эту статью. Параметры, которые описаны для WP_Query также подойдут и для query_posts.
Теперь я думаю порядок действий вам понятен? Создаете шаблон страницы, пихаете наверх query_posts, потом цикл, потом постраничную навигацию…
Кстати о ней. Просто так она не будет работать. Как это исправить?
Пожалуй стоит описать порядок действий более подробно.
А теперь полностью готовый код:
<?php /* * Template name: Моя галерея */ $current_page = (get_query_var('paged')) ? get_query_var('paged') : 1; $params = array( 'posts_per_page' => 7, // количество постов на странице 'post_type' => 'artwork', // тип постов 'paged' => $current_page // текущая страница ); query_posts($params); $wp_query->is_archive = true; $wp_query->is_home = false; while(have_posts()): the_post(); /* в тело цикла вставьте HTML одного анонса записи, например: <h2><?php the_title() ?></h2> <p><?php the_content() ?></p> */ endwhile; wp_pagenavi(); // функция постраничной навигации
Это конечно же обобщенный пример, поэтому не забудьте про get_header() и get_footer(), если они у вас используются.
В предыдущем примере я использовал функцию wp_pagenavi()
. Она отвечает за постраничную навигацию и является составляющей частью плагина WP-PageNavi (русское название: Список страниц).
Если вы используете данный код как есть и при этом у вас не установлен WP-PageNavi, то вероятнее всего вы получите ошибку.
Плагин очень легко устанавливается через админку сайта и так же легко настраивается — так что для этих целей рекомендую использовать именно его.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Кучу статей перерыла, чтобы решить свою проблему с навигацией на пользовательской странице - ничего толкового нигде нет. И только ваша статья действительно помогла. Спасибо!
я рад, что смог помочь))
Почитал Ваш пост, чувствую, что ответ где то здесь :).
Такая задача. Есть статья на 12 килознаков, я хочу разбить её на 3 части. По нажатию на ссылку на статью в меню, читатель должен попадать на вначале первую часть, далее читает вторую часть и напоследок третью. Однако в начале каждой части должна быть ссылка на статью в полном варианте, для тех кто хочет открыть сразу всю статью и читать не листая страницы туда-сюда. Понятно что нужно сделать три страницы для каждой из трех частей отдельно. Но как их собрать в кучу? подойдет ли для этого код помещенный в статье, там речь идет о постах (записях) а не о страницах? Или можно как то проще это реализовать?
попробуй сделать GET-запрос в single.php)
Я правильно понимаю вставляю код на свою страницу в таком виде
почемуто не работает...
Классная статья, очень помогла!
Спасибо тебе Огромное!)
пожалуйста) рад, что помог)
Все понял теперь выводятся...
Может быть сможеш разобратся как сделать чтобы хлебные крошки работали на странице... допустим страница у меня "Новости" на ней выводятся заметки из категории допустим "Блог" вот когда я на странице "Новости" перехожу по заметке то в хлебные крошки пдстовляется уже не "Новости" а "Блог" и потом название заметки...
Хлебные крошки использую от dimox
суй код после хлебных крошек)
Привет, подскажи пожалуйста как вывести 3 определенные записи в слайдер, (например: post=754,234,432)? Спасибо
используй параметр post__in = array(754,234,432) для query_posts.
Полный список параметров смотри здесь.
например:
А можешь показать куда вставить)(что удалить) на примере
тот огрызок кода вообще нерабочий) на третьей строчке есть две скобки - где они открываются?
Спасибо, информация очень помогла.
Спасибо! Очень полезная и позновательная статья.
Наконец-то все работает) Спасибо))
пожалуйста :)
У меня вопрос: Пытаюсь таким куском кода на одной странице выводить посты с разных категории, но столкнулась с проблемой: как только нет постов с такой категории - то дальнейшие if-ы уже не обрабатываются. Почему? Разве if не подразумевает, что если нет подходящего условия - идти дальше? Почему обрывается исполнение?
Спасибо)
Код:
Попробуйте небольшие изменения:
Вы мой спаситель))
Это логично ставить изначально условие)) Спасибо еще раз)
пожалуйста) рад помочь)
Задача была такая: вывести на главной странице посты из 2-х категорий с id 102 и 103, с сортировкой по дате добавления в хронологическом порядке, и с количеством постов на странице 12 шт. Получилось вот так:
Все отлично работает, но вот беда все же одна есть: на главной странице отображаются посты из нужных категорий, т.е. с id 103 и 102, а вот на второй странице отображаются посты из всех других категорий, к примеру, с id 3 или 4 или 5... В принципе, мне и не нужна эта вторая страница вовсе (эта та, которая выглядит как сайт.ru/page/2/, т.к. вся нужная мне информация присутствует на первой. Но вот как от этой второй и последующих страниц избавиться?
Посмотрела, у меня в шаблоне index.php количество страниц задано через переменную
В php не сильна, но пришла такая мысль в голову: может, присвоить этой переменной значение 1, и все? Подскажите, пожалуйста, как решить проблему.
Сразу вопрос, а что за переменная $query_string?
Также можете поменять:
Я в php не сильна:-) Использовала код, предложенный в одном из блогов. Переменная $query_string сохраняет параметры основного запроса, изменяя только то, что стоит после амперсанта (&)
В итоге, воспользовалась редиректом всех "добавочных" страниц на главную через htaccess
Здравствуйте.
Вопрос, может, не совсем по теме поста... Не подскажете, как в single.php вывести случайным образом посты из определенных категорий? Может ссылка какая-нибудь есть, где почитать...
Здравствуйте, ссылка есть, вот и вот.
Но для
single.php
раньше вроде не работало (дляpage.php
иpage-template.php
— отлично).Видимо реализовать что-то подобное как здесь http://a-a-ah.ru/bunker-42 - подгрузку постов из разных категорий на странице текущего поста на WP не получится(
Хорошие знания jQuery + общее представление о WP_Query и всё получится. На самом деле реализовать на WP можно всё.
Забыл дописать, вывести посты с пагинацией.
Смысл в том, чтобы под основным постом выводить рандомные статьи, а плагином Infinite Scroll подгружать след. страницы, как он это делает на страницах категорий.
Хотя если честно, не уверено, что он сработает там, как нужно..
Всяко перепробовал данный метод, но ничего не работало. У меня WP 4.2.1
Не уверен с чем это связано.
Получилось вывести пагинацию данным методом для :
Взято отсюда http://scribu.net/wordpress/wp-pagenavi/wpn-2-74.html.
Для query_posts — http://scribu.net/wordpress/wp-pagenavi/right-way-to-use-query_posts.html , но не проверял на работоспособность у себя.