• Что можно приготовить из кальмаров: быстро и вкусно

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

    Зачем и когда нужно выводить все записи на одной странице?

    В WordPress есть строенная страница архива для каждой рубрики, тегов, авторов и даты.

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

    Некоторые блоги предпочитают просто выводить список заголовков для всех записей WordPress на одной странице.

    Выводим все записи WordPress на одну страницу

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

    Мы расскажем о всех трех способов, и начнем с самого простого.

    Способ 1: Используем плагин Display Posts Shortcode

    Первым делом вам необходимо установить и активировать плагин Display Posts Shortcode .

    Плагин работает «из коробки» и не нуждается в дополнительной настройке.

    Продолжаем, и создаем новую страницу, называем её «Архивы» или как пожелаете. После этого вставляем в неем следующий шорткод:

    Этот шорткод выведет простой список всех заголовков ваших записей в хронологическом порядке. В параметрах шорткода указан лимит на 1000 записей на страницу.

    Если же у вас более тысячи постов, то можно изменить это значение. Также вы можете изменить порядок записей на ASC, и при этом записи станут отображаться в обратном хронологическом порядке (сначала старые записи).

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

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

    Способ 2: Используем плагин Simple Yearly Archive

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

    Для начала вам потребуется установить и активировать плагин Simple Yearly Archive .

    После активации переходим на страницу Настройки » Simple Yearly Archive для настройки плагина.

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

    Если вы хотите вывести их под названием года, то потребуется добавить

    and
    рядом с опцией ‘Before / After (Year headline)’.

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

    Не забудьте нажать на кнопку сохранения изменений.

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

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

    Способ 3: Выводим все записи WordPress на одной странице с помощью кода шаблона

    Использование плагина для вывода всех записей на одной странице — самое простое решение, но может быть некоторые из вас захотят реализовать это с помощью кода в шаблоне страницы.

    Для начала создаем произвольный шаблон страницы и копируем в него оформление из своего файла page.php.

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

    "post", "post_status"=>"publish", "posts_per_page"=>-1)); ?> have_posts()) : ?>

      have_posts()) : $wpb_all_query->the_post(); ?>
    • ">

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

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

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

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

    Пишем свой плагин для вывода записей

    Есть два основных шага, которые необходимы для реализации своего порядка вывода записей:

    1. Добавить произвольное поле, которое будет использоваться в качестве основы для сортировки постов.
    2. Реализовать произвольный порядок сортировки, изменив основной цикл WordPress или создав произвольный цикл и добавив его к специальному шаблону страниц или в виджет сайдбара.

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

    Создаем произвольное поле

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

    Первый шаг для добавления произвольной мета-панели к бэкэнду – это создание панели и привязка ее к экрану редактирования записей:

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

    Вы можете заметить функцию обратного вызова ‘jpen_custom_post_order’ в коде. Давайте создадим эту функцию далее и добавим ее в файл нашего плагина. Она будет вносить поле в мета-панель, которую мы создали выше.

    ID, "_custom_post_order", true); ?>

    Enter the position at which you would like the post to appear. For exampe, post "1" will appear first, post "2" second, and so forth.

    Фрагмент кода начинается с задания . Затем мы создаем переменную $current_pos и присваиваем ей значение текущего порядка сортировки записей. Далее идут два элемента p, которые создают видимый контент мета-панели. Затем текущее значение, если оно существует, выводится в поле.

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

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

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

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

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

    "Position",)); } add_filter("manage_posts_columns" , "jpen_add_custom_post_order_column"); ?>

    Затем нам нужно получить значение порядка вывода записей для каждой записи и вывести это значение в новом столбце. Это не так сложно, и мы сделаем это с помощью следующей функции:

    " . get_post_meta($post_id, "_custom_post_order", true) . "

    "; } } add_action("manage_posts_custom_column" , "jpen_custom_post_order_value" , 10 , 2); ?>

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

    Вот как это будет выглядеть в панели администратора:

    Способы использования произвольного порядка вывода записей

    Теперь, когда мы реализовали возможность привязки произвольного порядка вывода к записям, пришла пора найти достойное применение этой опции. Нам нужно ответить на вопрос: «Как именно мы хотим использовать произвольный порядок вывода записей?»

    Есть несколько разных вариантов, как можно применить произвольную сортировку. Вот пара идей:

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

    Никаких пределов нет. Если вы нашли применение произвольному порядку вывода записей и знаете, как это реализовать – отлично! Давайте рассмотрим все три идеи, изложенные выше, чтобы понять, как они будут выполняться на практике.

    Меняем записи на странице блога на произвольно отсортированный список

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

    is_main_query() && is_home()){ $query->set("orderby", "meta_value"); $query->set("meta_key", "_custom_post_order"); $query->set("order" , "ASC"); } } add_action("pre_get_posts" , "jpen_custom_post_order_sort"); ?>

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

    Создаем курируемый список произвольно отсортированных записей

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

    "post", "cat" => "94", "meta_key" => "_custom_post_order", "orderby" => "meta_value", "order" => "ASC"); $query = new WP_query ($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); /* only list posts that have a current custom post order value */ if (!empty(get_post_meta($post->ID, "_custom_post_order", true))) : ?> /* insert code for rendering posts */

    Этот запрос сначала отберет все записи, которые принадлежат к категории с ID = 94. Далее он будет отбирать записи, которые имеют значение произвольного порядка вывода. Наконец, он отсортирует эти записи в нужном порядке.

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

    Добавляем отсортированные записи в начало списка записей блога

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

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

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

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

    "post", "meta_key" => "_custom_post_order", "orderby" => "meta_value", "order" => "ASC"); $query1 = new WP_query ($args1); if ($query1->have_posts()) : while ($query1->have_posts()) : $query1->the_post(); // This if statement will skip posts that were assigned a custom sort value and then had that value removed if (!empty(get_post_meta($post->ID, "_custom_post_order", true))) : // Display the custom sorted posts ?>

    "); ?> ">Read More

    "post", "orderby" => "date", "order" => "DESC", "paged" => $paged); // For pagination to work, must make temporary use of global $wp_query variable $temp = $wp_query; $wp_query = null; $wp_query = new WP_query ($args2); if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post(); // Skip posts with custom sort value if (!empty(get_post_meta($post->ID, "_custom_post_order", true))) { continue; } // Display the standard sorted posts ?>
    ", esc_url(get_permalink())), ""); ?> ">Read More

    Вы можете использовать этот набор запросов, чтобы заменить стандартный запрос для страницы блога. Делается это в три шага:

    1. Создаем файл home.php, копируя Index.php родительской темы.
    2. Помещаем эти запросы вместо базового цикла.
    3. Загружаем новый home.php в корневую директорию дочерней темы.

    Теперь при отображении страницы блога будет использоваться новый файл home.php в качестве шаблона страницы.

    Плагины для достижения тех же целей

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

    Post Types Order

    Post Types Order активен на более чем 400 000 сайтов, постоянно обновляется; разработчик активно решает вопросы, поступающие в поддержку. Плагин имеет рейтинг 4,6 из 5 и собрал более 150 отзывов от пользователей.

    Плагин может использоваться для произвольной сортировки записей и типов записей. Чтобы использовать плагин, просто установите и активируйте его, после чего перейдите в раздел Settings > Post Types Order. Далее посетите список записей в панели администратора и просто перетащите записи в требуемый раздел с порядком сортировки. В итоге вы увидите, что записи во фронтэнде вашего сайта были отсортированы в нужном вам порядке.

    Order Your Posts Manually

    Order Your Posts Manually активен менее чем на 1000 сайтов WordPress. Однако он имеет хороший рейтинг, равный 4,6 из 5, и разработчики решают все запросы, поступающие в поддержку. Плагин действительно стоит рассмотрения.

    Чтобы использовать плагин, установите его, активируйте и перейдите в раздел Settings > Order Your Posts Manually. Настройте несколько опций и щелкните Order My Posts. Щелчок по этой кнопке перенесет вас в раздел Tools > Order Your Post Manually и сгенерирует список всех ваших записей. Просто перетащите ваши записи в нужную группу, чтобы упорядочить их, после чего щелкните по Save Changes.

    По умолчанию последние записи в WordPress отображаются на главной странице, а более старые записи доступны через навигацию по записям на страницах /page/2/ , /page/3/ и так далее. В этой статье мы расскажем, как отображать ваши записи на любой статической странице, используя пользовательский цикл WP_Query , который отлично работает с навигацией по записям.

    Например, если вы отображаете статическую страницу в качестве главной страницы (как указано в Настройках чтения ), вы можете захотеть показывать список записей отдельно, например на отдельной странице "blog ". К этому пришел я, когда делал свой блог xy.css , при этом используя статичную (без записей блога) главную страницу. Мне нравится такой подход, поскольку навигация по записям в таком виде работает интуитивно, например, так:

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

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

    Создайте пустой шаблон страницы, назовите его page-blog.php и добавьте туда следующий код:

    query("showposts=5" . "&paged=".$paged); while ($wp_query->have_posts()) : $wp_query->the_post(); ?>

    " title="Read more">

    1) { ?>

    Собственно, все. Теперь просто подключите его и напичкайте своими собственными параметрами для WP_Query - и готово. Например, вместо того, чтобы отображать 5 записей, вы можете установить showposts=10 или столько, сколько вам будет угодно.

    Обратите внимание, что навигация по постам содержит условия, чтобы на первой странице записей (то есть, на вашей странице /blog/ ) не отображалась пустая разметка/стили для ссылки "Следующие записи ". Здесь вы можете узнать больше об оптимизации навигации по записям WordPress.

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

    Шаг 2. Добавление новой страницы

    Как только вы закончили и загрузили на сайт файл page-blog.php , зайдите в консоль администратора и перейдите на страницу добавления новой страницы. Там создайте новую странице под названием "Blog " (или как вам захочется), установите ее шаблон как "Blog " из панели "Атрибуты страницы ".

    Готово! Теперь перейдите на страницу блога и вы увидите, как ваш цикл WP_Query работает: последние записи в блоге будут отображены на странице, как и навигация по предыдущим записям, если они существуют, конечно.

    Заключение

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

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

    И сегодня на закуску вам с утра порция полезного материала следующего содержания – мы с вами научимся выводить список страниц wordpress с картинками. Урок очень простой и интересный. Поехали.

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

    Помимо основного способа вывода страниц wordpress с превьюшками мы покажем как вывести дочерние страницы и родительские.

    Будет выглядеть это примерно так:

    Первое, что вам нужно сделать это установить и активировать плагин Page-list. Он работает прямо «из коробки», потому в настройки в мы лезть не будем, так как их там нет.

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

    Создайте новую страницу в WordPress и добавьте в нее следующий шорткод [ pagelist ]

    Этот шорткод покажет простой вложенный всех ваших страниц.

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

    add_filter("widget_text","do_shortcode");

    add_filter ("widget_text" , "do_shortcode" ) ;

    Отображение дочерних страниц для родительской в WordPress

    Все что вам нужно это добавить нужный шорткод [ subpages ] на страницу родителя.

    Также вы можете использовать короткие коды для вставки в текстовые виджеты.

    Добавление родственных страниц на Вордпресс

    Родственные страницы это, по сути, дочерние, которые имеют одного общего родителя. Вывод таких страниц wordpress осуществляется с помощью следующей конструкции [ siblings ]

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

    Плагин Page-list идет в комплекте со следующим кодом [ page_ext ] . Этот код для вставки дает расширенные возможности для отображения списков страниц в WordPress.

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

    [ pagelist_ext show_image = "1" image_width = "50" ]

    Вы можете самостоятельно задавать размер изображения, используя параметр image_width

    Также вы можете контролировать длину отрывка текста используя параметр limit_content

    Например можете задать 100 знаков, пример [ pagelist_ext limit_content = "100" ]

    Если вы не хотите отображать текст возле миниатюры к статье, тогда используйте следующий короткий код для страницы [ pagelist_ext show_content = "0" ]

    Спасибо за внимание и удачного изучения!

    Здравствуйте уважаемые читатели блога 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 .

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