По умолчанию последние записи в 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, которые мы будем использовать для создания произвольного порядка вывода записей.

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

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

  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.

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

Массив 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); }

По умолчанию движок 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

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

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

Для удобства посетителей, и для ускорения индексации статей поисковыми системами создаются карты (содержание) сайта, как в формате XML, так и в HTML. В XML-формате карта сайта подходит только для поисковых систем, а в HTML можно вывести все записи, и она ориентирована посетителей, но для поисковиков это тоже плюс.

Небольшое отступление от темы.
Решил сделать небольшой редизайн блога. Целый вечер редактировал стили сайдбара. Как видите, теперь он другого цвета + обновленная .
Сам шаблон блога теперь «нерезиновый» и имеет фиксированную ширину, а под каждым постом добавил социальные кнопки от Addthis. Вот такие дела

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

Хотел я сделать HTML-карту блога с помощью плагина , но мне он не понравился тем, что если запись принадлежит двум рубрикам, то названия записей повторяются, то есть получается такой эффект, как будто на блоге в несколько раз больше записей, чем на самом деле. Карта блога представляет из себя следующую структуру, (если записи выводить по рубрикам):



Дата записи / Название записи из рубрики 1
Дата записи / Название записи из рубрики 1 и рубрики 2 // повтор названия записи!

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

В итоге я решил сделать простой нумерованный список всех записей блога по убыванию (по дате публикации) .

Итак, приступим.

Создаем копию файла темы page.php и переименовываем его во что-нибудь другое, например soderzhanie.php. После открываем в редакторе NotePad++ и изменяем код:

До редактирования код выглядит примерно так:

1 2 3 4 5 6 7 8 9 10 11 12 13 14

"" ) ) ; comments_template() ; endwhile ; } get_footer() ; ?>

"")); comments_template(); endwhile; } get_footer(); ?>

Оставляем только функции вывода header-a и footer-a, а content нам нафиг не нужен

Туда, где написано Здесь был Вася «Здесь будет код для вывода всех записей блога!» Вставляем следующий код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 "post" , "post_status" => "publish" , "posts_per_page" => - 1 , "caller_get_posts" => 1 if ($moi_zapros -> have_posts () ) : print "Все посты: пример" . "

Все записи блога:

    " ; while ($moi_zapros -> have_posts () ) : $moi_zapros -> the_post () ; ?>
  1. " target="_blank">
  2. ?>

"post", /* Отбираем только записи. */ "post_status" => "publish", /* И только опубликованные. */ "posts_per_page" => -1, /* Снимаем ограничение на количество показываемых записей на одну страничку. */ "caller_get_posts" => 1 /* Игнорируем особенности записей-липучек. */);$moi_zapros = null;$moi_zapros = new WP_Query($parametri); /* Формируем новый "нестандартный" запрос. */if ($moi_zapros->have_posts()): print "Все посты: пример". "

Все записи блога:

    "; while ($moi_zapros->have_posts()) : $moi_zapros->the_post(); ?>
  1. " target="_blank">
  2. ";endif;wp_reset_query(); /* Сбрасываем нашу выборку. */?>

    Окончательный код файла soderzhanie.php:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 /** * Template name: Все посты // имя шаблона страницы */ $parametri = array ( "post_type" => "post" , /* Отбираем только записи. */ "post_status" => "publish" , /* И только опубликованные. */ "posts_per_page" => - 1 , /* Снимаем ограничение на количество показываемых записей на одну страничку. */ "caller_get_posts" => 1 /* Игнорируем особенности записей-липучек. */ ) ; $moi_zapros = null ; $moi_zapros = new WP_Query($parametri ) ; /* Формируем новый "нестандартный" запрос. */ if ($moi_zapros -> have_posts () ) : print "Все посты: пример" . "

    Все записи блога:

      " ; while ($moi_zapros -> have_posts () ) : $moi_zapros -> the_post () ; ?>
    1. " title="Постоянный линк для: " target="_blank">
    2. " ; endif ; wp_reset_query() ; /* Сбрасываем нашу выборку. */ ?>

    "post", /* Отбираем только записи. */ "post_status" => "publish", /* И только опубликованные. */ "posts_per_page" => -1, /* Снимаем ограничение на количество показываемых записей на одну страничку. */ "caller_get_posts" => 1 /* Игнорируем особенности записей-липучек. */);$moi_zapros = null;$moi_zapros = new WP_Query($parametri); /* Формируем новый "нестандартный" запрос. */if ($moi_zapros->have_posts()): print "Все посты: пример". "

    Все записи блога:

      "; while ($moi_zapros->have_posts()) : $moi_zapros->the_post(); ?>
    1. " title="Постоянный линк для: " target="_blank">
    2. ";endif;wp_reset_query(); /* Сбрасываем нашу выборку. */?>

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png