Wp вывод записей на странице. Отображение записей блога на любой странице (с навигацией). Создаем курируемый список произвольно отсортированных записей

Wp вывод записей на странице. Отображение записей блога на любой странице (с навигацией). Создаем курируемый список произвольно отсортированных записей

08.10.2023

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

Массив WP_Post объектов (записей). Каждый объект в массиве выглядит так:

Array(=> object(WP_Post)#4692 (24) { ["ID"] => int(822) ["post_author"] => string(1) "1" ["post_date"] => string(19) "2016-07-07 10:28:57" ["post_date_gmt"] => string(19) "2016-07-07 07:28:57" ["post_content"] => string(6225) "Контент статьи" ["post_title"] => string(37) "Мертвое море (14 фото)" ["post_excerpt"] => string(15) "Цитата о статье" ["post_status"] => string(7) "publish" ["comment_status"] => string(4) "open" ["ping_status"] => string(4) "open" ["post_password"] => string(0) "" ["post_name"] => string(95) "mertvoe-more-14-foto" ["to_ping"] => string(0) "" ["pinged"] => string(0) "" ["post_modified"] => string(19) "2016-07-07 10:28:57" ["post_modified_gmt"] => string(19) "2016-07-07 07:28:57" ["post_content_filtered"] => string(0) "" ["post_parent"] => int(0) ["guid"] => string(0) "" ["menu_order"] => int(0) ["post_type"] => string(4) "post" ["post_mime_type"] => string(0) "" ["comment_count"] => string(1) "0" ["filter"] => string(3) "raw" } => object(WP_Post){ ... } => object(WP_Post){ ... })

Использование

get_posts($args);

Шаблон использования

// параметры по умолчанию $posts = get_posts(array("numberposts" => 5, "category" => 0, "orderby" => "date", "order" => "DESC", "include" => array(), "exclude" => array(), "meta_key" => "", "meta_value" =>"", "post_type" => "post", "suppress_filters" => true, // подавление работы фильтров изменения SQL запроса)); foreach($posts as $post){ setup_postdata($post); // формат вывода the_title() ... } wp_reset_postdata(); // сброс $args(строка/массив) Список аргументов, в соответствии с которыми будет получен результат.
По умолчанию: предустановленные

Аргументы параметра $args

С версии WordPress 2.6, в дополнении к нижеописанным параметрам, get_posts() может принимать все те же параметры что и WP_Query .

В get_posts() по умолчанию включен параметр suppress_filters (подавлять фильтры), который в query_posts() и WP_Query отключен - т.е. там фильтры работают. Включение suppress_filters отменяет все фильтры изменения SQL запроса, следующего типа: posts_* или comment_feed_* .

suppress_filters не виляет на работу фильтра pre_get_posts - он будет работать независимо от того что указано в suppress_filters .

Такое отключение фильтров по умолчанию, может ввести в замешательство, если есть плагины влияющие на вывод записей, через фильтры SQL запроса, например WPML. В таких случаях suppress_filters нужно отключить.

В параметр "category" нужно передавать ID, а не название категории. Также "category" можно передать строку: ID через запятую.

numberposts(число) Количество выводимых постов. Установить на 0 , чтобы ограничить вывод максимальным числом постов на страницу (устанавливается в настройках ВП) или поставить -1 чтобы убрать ограничения вывода (LIMIT).
По умолчанию: 5 offset(число) Отступ от первого поста (записи). category(число/строка/массив)

Из каких категорий выводить записи. Укажите ID категории из которой нужно получить посты или укажите, -3 вместо 3 , если нужно получить все записи, кроме записей из категории 3 (исключить категорию). Можно указать несколько ID через запятую ("3,5,12" или "-3,-5,-12").

Смотрите описание параметра cat у WP_Query .

В функциях WP_Query и query_posts() этот параметр отключен по умолчанию (равен false).
По умолчанию: true

Примеры

#1. Вывод постов с отступом

Если у вас на главной выводится один, последний пост, а нужно вывести еще 5 предыдущих из категории 1, то можно использовать такой код:

    5, "offset"=> 1, "category" => 1); $myposts = get_posts($args); foreach($myposts as $post){ setup_postdata($post); ?>
  • ">

#2. Вывод постов с отступом, без нарушения основного цикла.

Если была использована функция get_posts() и после нее нужно использовать стандартный цикл WordPress, то нужно сохранить глобальную переменную $post , делает это так:

    5, "offset"=> 1, "category" => 1); $myposts = get_posts($args); foreach($myposts as $post){ setup_postdata($post); ?>
  • ">

#3. Возможность использовать специальные функции Цикла ВП

Стандартно в цикле основанном на get_posts() невозможно использовать, например, функцию the_content() или the_date() . Эта проблема решается функцией setup_postdata() которой нужно передать переменную $post:

3); $lastposts = get_posts($args); foreach($lastposts as $post){ setup_postdata($post); // устанавливаем данные?>

">

Данные можно также получить через обращение к свойству объекта (объект->свойство_объекта). Например, для этого примера $post->ID будет равно ID поста, $post->post_content будет содержать контент записи. Свойство объекта это колонка таблицы БД posts. Название колонок можно посмотреть .

Не забывайте, что на экран данные выводятся через php оператор echo:

ID; ?>

#4. Последние посты отсортированные по заголовку

Получим последние посты отсортированные по заголовку в алфавитном порядке. Следующий пример выведет дату, заголовок и цитату поста:

10, "order"=> "ASC", "orderby" => "title")); foreach ($postslist as $post){ setup_postdata($post); ?>


#5. Случайные посты

Получим 5 случайных постов, реализуется за счет параметра "orderby" => "rand" :

    5, "orderby" => "rand"); $rand_posts = get_posts($args); foreach($rand_posts as $post) : ?>
  • ">

#6. Получить все прикрепленные файлы

Используется за пределами Цикла WordPress. Следующий код выведет заголовок, ссылку и цитату прикрепленного файла:

"attachment", "posts_per_page" => -1, "post_status" => null, "post_parent" => null); $attachments = get_posts($args); if ($attachments) { foreach ($attachments as $post) { setup_postdata($post); the_title(); the_attachment_link($post->ID, false); the_excerpt(); } } wp_reset_postdata(); ?>

#7. Прикрепленные файлы определенного поста

Код нужно использовать внутри Цикла WordPress, где переменная $post->ID:

"attachment", "posts_per_page" => -1, "post_status" => null, "post_parent" => $post->ID); $attachments = get_posts($args); if ($attachments) { foreach ($attachments as $attachment) { echo apply_filters("the_title" , $attachment->post_title); the_attachment_link($attachment->ID , false); } } wp_reset_postdata(); ?>

#8. Последние записи из той же рубрики

Выведем список последних записей текущей рубрики, в которой находится запись. При этом исключим текущую запись:

term_id; $real_id = get_the_ID(); $args = array("cat" =>$cat_add_id); $posts = get_posts($args); foreach($posts as $post){ setup_postdata($post); if ($post->ID <> $real_id){ ?> ">

Заметки

    С версии 2.6 изменен ряд передаваемых значений у параметра orderby - префикс post_ был удален, например, было post_title, стало просто title.

  • С версии 3.0 параметрам include и exclude можно передавать и массивы ID.

Хотите дешево купить просмотры в Инстаграме на видео или ТВ-трансляцию, но не знаете, где? Попробуйте посетить сайт Doctor SMM , где Вам будет предложена одна из самых низких цен по рунету на просмотры. Торопитесь, так как предложение действует ограниченное время! К тому же здесь Вы сможете очень быстро приобрести ресурс с оптимальным, конкретно для Вашей страницы, скоростным режимом. Развивайте аккаунт быстро и легко!

Заметки

  • Смотрите: WP_Query::parse_query()

Список изменений

С версии 1.2.0 Введена.

Код get posts : wp-includes/post.php WP 5.2.3

5, "category" => 0, "orderby" => "date", "order" => "DESC", "include" => array(), "exclude" => array(), "meta_key" => "", "meta_value" => "", "post_type" => "post", "suppress_filters" => true,); $r = wp_parse_args($args, $defaults); if (empty($r["post_status"])) { $r["post_status"] = ("attachment" == $r["post_type"]) ? "inherit" : "publish"; } if (! empty($r["numberposts"]) && empty($r["posts_per_page"])) { $r["posts_per_page"] = $r["numberposts"]; } if (! empty($r["category"])) { $r["cat"] = $r["category"]; } if (! empty($r["include"])) { $incposts = wp_parse_id_list($r["include"]); $r["posts_per_page"] = count($incposts); // only the number of posts included $r["post__in"] = $incposts; } elseif (! empty($r["exclude"])) { $r["post__not_in"] = wp_parse_id_list($r["exclude"]); } $r["ignore_sticky_posts"] = true; $r["no_found_rows"] = true; $get_posts = new WP_Query; return $get_posts->query($r); }

Здравствуйте уважаемые читатели блога WP Developer. В статье « » я рассказывал, что это такое такое, приводил пример стандартных типов записей и описывал процесс их создания. Но сам процесс создания не является конечным, т.к. записи потом нужно как то выводить на сайте. Как раз в этой статье я хотел бы показать Вам два способа вывода архива таких статей (без пагинации и с пагинацией) и показать, как выводить отдельную произвольную запись. Все манипуляции я буду производить в стандартной теме WordPress — twentyseventeen . Итак, поехали.

Вывод всех записей на одной странице (без пагинации)

Иногда требуется вывести архив произвольного типа записей на одной странице. Ну мало ли какие могут быть требования у заказчика. Вдруг ему понадобится именно такой вариант вывода. Для примера я создал новый тип записей Отзывы с идентификатором reviews . Сам процесс описывать не буду. Для этого Вы можете кликнуть по ссылке , где все подробно описано. Я лишь только визуально покажу, как это выглядит в меню (См. рисунок):

На следующем шаге в папке с Вашей темой нужно создать отдельный шаблон для вывода архива. Я назвал его reviews.php . Внутри этого шаблона прописываем следующий комментарий:

Увидев этот комментарий кто-то может уже догадался, что мы создаем . Да, так и есть. В него также я добавил следующий код для получения и вывода самих отзывов:

"reviews", "posts_per_page" => -1)); ?>

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Стилизацию я проводить не буду, поскольку нам важно понять сам процесс, а не увидеть внешний вид страницы.

Готово. Теперь добавив страницу Отзывы в меню, перейдите на нее, и Вы сможете увидеть весь список добавленных отзывов.

Вывод постов в виде категории (с пагинацией)

Если Вам необходимо вывести список произвольного типа записей с пагинацией, т.е. как выводится любая из рубрик, то в папку с Вашей темой всего лишь нужно добавить новый файл со следующим названием — archive-{идентификатор_произвольного_типа_записей}.php . В моем случае этот файл будет называться так — archive-reviews.php . Далее в файл добавляете цикл вывода (уже без комментария Template Name: Отзывы) и посты будут выводиться как категории — с пагинацией. Код может выглядеть так:

have_posts()) : while ($reviews->have_posts()) : $reviews->the_post(); ?>

">

Как Вы заметили, мы уже не получаем посты при помощи класса WP_Query , в этом нет необходимости. WordPress сам поймет, к какому типу записей относится данный шаблон и выведет именно их.

Теперь при переходе по данной ссылке у вас может появиться примерно такое сообщение — «Извините, но запрашиваемая Вами страница не найдена «. Данная проблема решается довольно простым способом. Нужно перейти в раздел Настройки->Постоянные ссылки и ничего не меняя нажать на кнопку Сохранить.

Вывод отдельной записи произвольного типа

Итак, мы выяснили как можно выводить архив произвольного типа записей с пагинацией и без нее. Теперь нам осталось вывести отдельный пост. В принципе, если Вас устраивает внешний вид страницы, которая в текущий момент выводит отдельный пост, то можете ничего и не создавать, с этим справится файл single.php . Если же Вы хотите изменить внешний вид нового типа записей, например, убрать сайдбар или вообще по другому стилизовать страницу, то нужно создать файл со следующим названием — single-{идентиикатор_произвольного_типа_записей}.php , и в нем уже прописать код для вывода поста с нужными стилями. В моем случае он будет называться так — single-reviews.php .

На этом все. Надеюсь статья была для Вас полезной. Всем удачи!!!

Хотите вывести последние записи в WordPress? Вывод свежих записей помогает пользователям легко найти новинки вашего блога. Вы можете вывести последние посты в боковой панели (сайдбаре), внутри контента с помощью шорткода, в конце записи, и в области футера или там, где вам душе угодно. В этой статье мы вам покажем, как вывести последние посты в WordPress с помощью плагинов, виджетов, шорткодов и ручным способом с помощью функции вывода последних записей.

Использование виджета свежих записей

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

Виджет очень простой, и вы можете добавить свой заголовок, отобразить дату записи, и задать количество постов для отображения.

Использование плагина Recent Posts Widget Extended

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

Что делать, если вы хотите отобразить последние записи с миниатюрами и небольшими анонсами записей? Что делать если вы хотите вывести свежие записи из определенной рубрики или метки?

В таком случае вам пригодится плагин Recent Posts Widget Extended.

Recent Posts Widget Extended . После активации просто перейдите в: Внешний вид » Виджеты и перетащите виджет Recent Post Extended в сайдбар.

Этот виджет имеет множество настроек и дает вам полный контроль над тем, как вы хотите вывести последние записи на вашем WordPress сайте. Вы можете отобразить миниатюры, анонсы записей, задать категории и теги и многое другое. Вы также можете использовать этот виджет для отображения последних записей отдельного типа поста.

Увеличить шрифт можно убрав галочку с «использовать стили по умолчанию» и задав собственные значения.

Выводим последние записи с помощью шорткода

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

Первое, что вам нужно сделать — это установить и активировать плагин Display Posts Shortcode . После активации, плагин сразу заработает, никаких настроек не имеется.

Откройте необходимую страницу или пост в редакторе WordPress, и в нужное место вставьте шорткод . В шорткоде можно использовать целый ряд параметров. Ниже приведены некоторые примеры:

Вывод 5 последних записей с миниатюрами и анонсами:

Вывод последних страниц, вместо постов:

Сортировка по названию, вместо даты:

Вывод последних страниц из конкретной родительской страницы:

С полным списком параметров вы можете ознакомиться на странице документации плагина.

Также эти шорткоды можно использовать внутри текстового виджета, но прежде, вам нужно будет включить поддержку шорткодов в текстовом виджете. Для этого добавьте ниже приведенный код в function.php вашей темы:

Add_filter (‘widget_text’ , ‘do_shortcode’);

Вывод свежих записей вручную

Более продвинутые пользователи могут вывести последние записи вручную, немного добавив код в файлы темы WordPress. Существуют несколько способов сделать это, но самым простым способом является использование встроенного класса WP_Query.

Просто добавьте нижеприведенный код в то место, где вы хотите отобразить свежие записи.


    // Define our WP Query Parameters

    // Start our WP Query
    have_posts()) : $the_query -> the_post(); ?>

    // Display the Post Title with Hyperlink

  • »>
  • // Display the Post Excerpt

  • // Repeat the process and reset once it hits the limit
    endwhile;
    wp_reset_postdata();
    ?>

Этот код выведет пять последних постов с названием и анонсом. Класс WP_Query имеет множество параметров, что означает вы можете настроить его так как вам нравиться. Для получения более подробной информации посетите страницу кодекса .

Надеемся, что статья помогла вам узнать как вывести последние записи в WordPress.

По умолчанию движок WordPress выводит на сайте записи, которые были добавлены позже всего – последние статьи, посты и заметки. Для блога это весьма удобно, но не всегда вывод последних записей подходит для определенных целей.

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

Если у вас аналогичный обучающий проект на движке WordPress, и вы хотите чтобы на главной не было списка последних записей, а красовались только посты из определенной рубрики, тогда эта статья будет полезна для вас.

Вы узнаете о всех возможных методах настройки публикации постов из выбранной категории на странице.

Как осуществить вывод записей из одной категории на странице другой категории при помощи кода

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

Найдите файл category.php (в некоторых темах WordPress он называется archive.php). Он как раз отвечает за отображение информации на определенной странице выбранной категории. Если планируете настроить главную страницу, тогда вам предстоит отредактировать файл index.php (иногда в темах WordPress его именуют content.php).

В указанных файлах есть отрезок кода, который отвечает за список записей на странице. Чтобы вывести заданные вами рубрики на страницу, вам предстоит внести изменения в код между

while (have_posts())

а точнее добавить строку кода перед тегом while. Найдите строчку такого вида

query_posts(‘cat=2′);

Именно она поможет вывести записи выбранной вами рубрики на странице. Цифра 2 в этом коде – это ID категории. Если хотите сменить ее, тогда просто смените цифру на ID другой рубрики. Либо пропишите через запятую сразу несколько разделов, вывод которых вы хотите осуществить.

Это самый простой способ, как вывести записи не последних постов со всех или только одной категории, а из указанной вами рубрики. Однако, в разных шаблонах есть свои нюансы, потому такой метод для вас может и не подойти. Есть облегченный способ, как сделать вывод рубрики в указанном месте – воспользуйтесь специальным плагином WordPress.

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

Плагин Featured Posts with thumbnails предоставляется бесплатно и работает со всеми версиями движка Вордпресс. С ним вы сможете настроить вывод последних постов, либо задать категории, которые необходимо вывести в блоке. Модуль позволяет создавать блоки с определенным названием, заданным количество записей на странице и выбранным размером миниатюр изображений. Огромное преимущество плагина в том, что вы можете не только настроить вывод категории на странице, но и создать собственный “микс” статей, добавляя их по отдельности.

Еще один простой и полезный плагин – Posts per Cat, который поможет вам быстро настроить вывод последних записей указанной рубрики в выбранной части сайта. Кроме того, вы сможете значительно сэкономить визуальное место на странице, так как Posts per Cat позволяет выводить посты в виде нескольких колонок.

Возможности модуля Posts per Cat:

  • отображение записей в одной или нескольких колонках (до 4);
  • в настройках можно указать ID рубрики, которые вы хотите добавить в блок, и которую вы хотите исключить;
  • записи можно сортировать по названиям и другим параметрам;
  • можно в превью записи добавить информацию о посте (отобразить количество комментариев, добавить миниатюру изображения, вводный абзац и другое);
  • стиль блоков можно настроить при помощи CSS;
  • модуль дружит с поисковиками – оптимизирует информацию для ПС-машин.

Content Views

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

И помните, что вы делаете это (настраиваете вывод записей) не ради красоты, а ради повышения юзабильности вашего блога. Только тот сайт станет успешным, который понятен и интересен посетителям!

Я видел много сайтов на WordPress, у которых на главной странице отображается какая-нибудь статичная страница, а страница блога находится отдельно, например yourwebsite.com/blog .

Как же это реализовать на своём собственной сайте? На самом деле существует два способа — один простой и один не очень, рассмотрим их оба.

Способ 1. Использование index.php в качестве шаблона блога.

Это стандартный способ, предусмотренный в WordPress. Скорее всего на тех сайтах, про которые я говорил в самом начале поста, используется именно он. Рассмотрим пошагово.

Кстати, так как в разных темах содержимое файла index.php разное — оно может быть совсем не предназначено для блога, в таких случаях либо меняем сами свой index.php либо воспользуемся вторым способом, который я описал чуть ниже.

Шаг 1. Создание страницы блога.

Ну, что тут сказать, переходим в Страницы > Добавить новую, указываем какой-нибудь заголовок, например Блог и какой-нибудь URL, например blog, после этого сохраняем. Всё, с шагом 1 покончено.

Шаг 2. Настраиваем отображение страниц в настройках.

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

Шаг 3. Последний шаг. Добавляем страницу в меню.

Уже после завершения второго шага при переходе по адресу блога (у нас это yourwebsite.com/blog), у вас будет отображаться страница с записями, использующая шаблон файла index.php .

Тем не менее можно также добавить эту страницу в меню сайта (если поддерживается темой разумеется). Для этого переходим в Внешний вид > Меню , слева в колонке выбираем нашу страницу блога и нажимаем кнопку «Добавить в меню»

Способ 2. Использование собственного шаблона блога. Создание нескольких блогов на одном сайте WordPress.

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

Шагов будет чуть побольше и они будут немного позаковырестей, чем в предыдущем методе. Итак, поехали.

Шаг 1. Создание шаблона страницы

Открываем папку с темой и создаем там файл произвольного названия, например blog-template.php . Внутрь файла вставляем:

Шаг 2. Создаем страницу блога

Этот шаг аналогичен первому шагу из начала поста. Итак, переходим в Страницы > Добавить новую, придумываем название и URL странице, и кроме всего прочего в атрибутах страницы указываем только что созданный нами шаблон.

Сохраняем.

Шаг 3. Плагин постраничной навигации

Однозначно, что нам понадобится постраничная навигация. Скорее всего у вас уже используется какой-то плагин или функция навигации. Если же навигация не будет работать, рекомендую поставить WP_PageNavi — этот плагин работает отлично, я его протестировал, всё ок.

Шаг 4. Шаблон страницы блога

Это голый шаблон блога, без таких важных функций как get_header() , get_footer() и прочего. Просто в данный момент важно понять саму суть.

/* * Template name: Блог */ $current_page = (get_query_var("paged" ) ) ? get_query_var("paged" ) : 1 ; // определяем текущую страницу блога $args = array ( "posts_per_page" => get_option("posts_per_page" ) , // значение по умолчанию берётся из настроек, но вы можете использовать и собственное "paged" => $current_page // текущая страница ) ; query_posts( $args ) ; $wp_query ->is_archive = true ; $wp_query ->is_home = false ; while (have_posts() ) : the_post() ; ?>

/* содержимое поста */ ?>

// функция постраничной навигации

Всё, страница блога создана, вы можете таким образом создать различные страницы блогов с разными параметрами массива $args. Полный список параметров



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows