Недостатки wordpress и как их обойти

Цикл на основе get_posts()

Самый удобный вариант выводить нужные записи в нужном порядке — это выводить их с помощьюget_posts() (см. описание). get_posts() в 99% случаев полностью заменяет WP_query(): нужно вывести 10 последних постов и сайдбаре или 10 случайных записей в подвале — пожалуйста; нужно вывести все картинки прикрепленные к посту или вывести записи с определенным произвольным полем — get_posts() прекрасно справится с этой задачей.

get_posts() так же как и query_posts() работает на основе класса WP_query() и поэтому передаваемые параметры одинаковые.

1. Пример цикла на основе get_posts(). Выведем 5 записей из рубрики 9:

<?php
global $post; // не обязательно
$args = array('category' => 9); // 5 записей из рубрики 9
$posts = get_posts($args);
foreach( $posts as $post ){ setup_postdata($post);
	// стандартный вывод записей
}
wp_reset_postdata(); // сбрасываем переменную $post
?>

Код выведет именно 5 записей, хотя в аргументах мы указали только номер рубрики. Вызвано это тем, что у функции get_posts() есть параметры по умолчанию (см. описание), о которых нужно помнить. Например, если нам нужно вывести все записи из рубрики 9, то мы должны добавить еще параметр‘nopaging’ => 1 или ‘posts_per_page’ => -1 (разницы нет).

Важное отличие get_posts() — функция принимает параметры в виде массива и не понимает параметры в виде строки (‘cat=-3&nopaging=1’), как понимают их query_posts() и WP_query()

Когда использовать get_posts()

Всегда, когда нужно просто вывести записи из БД в любом месте шаблона. Когда нужно создать несколько циклов. Так как get_posts() принимает те же параметры что и query_posts(), её очень удобно использовать для вывода записей по самым разным критериям.

Структурирование страниц

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

Например, предположим вы создаёте сайт для продавца турпутёвок и хотели бы иметь отдельную страницу для каждого континента и страны, куда могут продаваться путёвки. Вы можете начать с создания страницы «Африка» на которой будет общее описание о путешествии на континент. Затем вы создаёте страницы, вложенные в эту, то есть подстраницы, со странами «Лесото», «Того», «Камерун» и «Свазиленд». Затем в таком же ключе вы создаёте страницу «Южная Америка» с подстраницами «Бразилия», «Аргентина» и «Чили». И вот что получится:

  • Африка
    • Камерун
    • Лесото
    • Свазиленд
    • Того
  • Южная Америка
    • Аргентина
    • Бразилия
    • Чили

Для того, чтобы начать, перейдите в Administration >  > Write Page , в верхнем правом углу панели и нажмите выпадающий список «Page Parent». Этот список содержит перечень всех созданных страниц. Для преобразования текущей страницы в подстраницу, или наоборот, для преобразования в родительскую страницу выберите необходимый пункт из выпадающего меню. Текущая страница станет дочерней по отношению к выбранной.

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

В нашем примере для страницы «Камерун» пермалинк будет такой:

Главная страница WordPress

Пожалуй самая главная страница сайта это главная Извините за тафтологию

Но это действительно важно

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

Со временем сайт может развиваться и могут образовываться новые страницы.

Чем больше сайт и чем он сложнее, тем важнее обеспечивать грамотную иерархию страниц.

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

Это хорошая практика. Можно сказать что лучшая.

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

Примеры

Сортировка по дате создания

Страницы отсортированы по дате создания, а рядом с каждой ссылкой на страницу показана дата создания:

<ul>
  <?php wp_list_pages('sort_column=post_date&show_date=created'); ?>
</ul>

Список дочерних страниц на странице

Этот код можно поместить в раздел the_post() шаблона page.php вашейтемы WordPress после the_content() или в шаблон страницы, который используется для страниц, имеющих дочерние страницы:

<ul>
  <?php
  wp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified
  &date_format=$date_format'); ?>
</ul>

А этот код генерирует список, только если у текущей страницы есть дочерние страницы:

<?php
  $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
<?php } ?>

Дополнительно: в разделе «Функции WordPress» также:

  • URL и другая информация о блоге
  • Функции, подключающие шаблоны
  • Циклы WordPress
  • wp_list_categories
  • Вход в систему
  • Функции даты и времени в WordPress
  • wp_link_pages — ссылки на страницы статьи с nextpage
  • Шорткод
  • Функции для работы с метками
  • Функции action, filter, plugin и локализация
  • Произвольные поля (custom fields)
  • Функции для работы с типами данных (записей)
  • Функция wp_insert_post — обновление/добавление записи заданного типа
  • Административные меню
  • Функции для работы с пользователями и ролями пользователей

Posts per Cat

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

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

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

Настройка WordPress SEO Плагин

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

Yoast WordPress SEO – настройки заголовков и метасов

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

Обратите внимание, что если вы вручную вводите мета-описание для каждого поста при его составлении (опять же, я рекомендую это сделать), вам также потребуется выполнить следующий шаг

WordPress как CMS

Вы можете использовать WordPress для управления содержимым. Если вы так решили — вам понадобится создать некоторое (возможно, большое) количество страниц.

Использование страницы в качестве главной

В WordPress версии 2.1 появилась возможность использовать любую страницу в качестве главной.

Для этого необходимо перейти в Параметры > Чтение в административной панели. В секции «На главной странице отображать» можно выбрать что показывать в качестве главной страницы. По умолчанию там стоит значение «Ваши последние записи».

Дополнительные методы установки главной страницы для версий ниже 2.1

Если не использовать встроенную возможности установки главной страницы остаётся две возможности. Первая — использовать модуль Static Front Page Plugin. Он модифицирует запрос к главной странице и sticks the Page with a Page slug of «home» to the front page.

Когда страница показывается как главная, если шаблон с именем home.php есть для текущей темы, модуль перекрывает настройки шаблона и вместо него использует home.php. Шаблон применяется в том случае, если на страницу переходят по адресу (например, http://example.com/home/)

В качестве альтернативы модулю WordPress попытается распознать «home.php» в папке с шаблонами и использовать его вместо «index.php»

Однако, если ваша главная страница — не блог, примите во внимание, что шаблон home.php будет всегда показывать её как блог, хотите вы этого или нет. Вы можете использовать метку шаблона query_posts() перед вызовом главного цикла

Например:

вызовет запись с именем страницы «home».

Стили для блока нумерации страниц

Откройте файл style.css, расположенный в папке темы и добавьте в него следующий код стилей пагинации страниц WordPress:

/* Блок нумерации страниц */
 .pagination {
 clear: both;
 position: relative;
 font-size: 11px; /* Размер текста */
 line-height: 13px;
 float: right; /* Направление выравнивания блока */
 }
 .pagination span, .pagination a {
 display: block;
 float: left;
 margin: 2px 2px 2px 0;
 padding:6px 9px 5px 9px;
 text-decoration: none;
 width: auto;
 color: #fff; /* Цвет текста нумерации */
 background: #555; /* Цвет фона номеров страниц */
 -webkit-transition: background .15s ease-in-out;
 -moz-transition: background .15s ease-in-out;
 -ms-transition: background .15s ease-in-out;
 -o-transition: background .15s ease-in-out;
 transition: background .15s ease-in-out;
 }
 .pagination a:hover{
 color: #fff;
 background: #6AAC70; /* Цвет фона номера страницы при наведении курсора мыши */
 }
 .pagination .current {
 padding:6px 9px 5px 9px;
 background: #6AAC70; /* Цвет фона текущего номера страницы */
 color: #fff;
 }

Вот результат работы кода разбиения на страницы:

WP_Query

Взгляните на код ниже.

$args = array(
'post_type' => 'pets',
'posts_per_page' => 8,
'tax_query' => array (

array(
'taxonomy' => 'taxonomy1', // Мои Пользовательские Таксономии
'terms' => 'poroda-sobak', // Термин, который я хочу исключить
'field' => 'slug', // Передаю ли я term slug или term ID
'operator' => 'NOT IN', // Оператор выбора-IN для включения, NOT IN для исключения
),
),
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); ?>


<?php echo '<ul class="reletive">';?>

<li><a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(82, 82))?><?php the_title(); ?></a></li>

<?php echo '</ul>';

wp_reset_query();
?>


<?php endwhile; ?>

Первая часть кода — это объявление аргументов. Сначала мы создаем массив аргументов и устанавливаем его равным переменной по вашему выбору. Большинство разработчиков предпочитают использовать переменную $args, но вы можете использовать все, что подходит для вас. Просто помните, как вы ее назвали, потому что мы будем использовать его еще в нескольких местах.

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

Затем мы сообщаем WordPress, сколько записей мы хотели бы отобразить в этом шаблоне, используя аргумент posts_per_page. Я выбрала для отображения 8 записей из типа пользовательских сообщений pets.

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

Обратите внимание, что у нас есть массив в массиве. Первый аргумент во втором массиве является arg таксономии и запрашивает имя пользовательской таксономии

Название нашей таксономии-taxonomy1, именно так я назвала ее при создании моей таксономии.

Рекомендую ознакомиться с предыдущими статьями — Пользовательские Таксономии В WordPress и Пользовательские типы записей WordPress (Custom Post Types), тогда все станет намного проще для понимания.

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

Второй аргумент — это термины или какой термин мы хотим исключить. Мы исключаем термин «poroda-sobak» из нашего цикла.
В-третьих, у нас есть поле, где мы можем выбрать, что использовать — slug или ID.
Наконец, мы используем аргумент оператора, чтобы сказать WordPress, что мы хотим исключить термин  poroda-sobak в таксономии, сказав NOT IN.

Давайте перейдем в тело цикла. Мы создадим новую переменную под названием $loop и установим ее равной wp_query при передаче переменной $args, которую мы установили ранее. Далее идет объявление while, но здесь есть разница, которую вы увидите из стандартного цикла, который мы рассмотрели выше. Мы должны указать, что have_posts() и the_posts () будут использовать новый WP_Query, а не стандартный цикл. Это достигается путем добавления переменной $loop перед ними.
Между Открытием и окончанием вы можете добавить все обычные функции WordPress и html.

Событие pre_get_posts

function my_pre_get_posts( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        $query->set( 'posts_per_page', 5 );
    }
}
add_action( 'pre_get_posts', 'my_pre_get_posts' );

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

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

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

Отдельные страницы могут использовать собственный шаблон страницы (файл-шаблон PHP, например, snarfer.php) который можно включить в создаваемую тему (см. ниже ). Вновь созданный шаблон будет перекрывать шаблон по умолчанию page.php.

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

WordPress может быть настроен на использование разных шаблонов для разных страниц. Внизу административной панели Write > Page (или на боковой панели — зависит от версии) имеется выпадающее меню «Page Template», в котором можно выбрать шаблон, используемый данной страницей.

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

Шаблоны встроенной темы по умолчанию

Встроенная тема по умолчанию содержит три шаблона:

  • page.php — шаблон страницы по умолчанию: отображает содержимое страницы
  • archives.php — игнорирует содержимое и вместо него показывает список архивов по месяцам и рубрикам.
  • links.php — также игнорирует содержимое и вместо него показывает ссылки, используя wp_list_bookmarks().

Какой шаблон используется для показа отдельных страниц?

WordPress просматривает несколько файлов в активной теме. Первый найденный будет использован для показа любой страницы. WordPress просматривает файлы в следующем порядке:

  1. Выбраннный для данной страницы шаблон.
  2. page.php
  3. index.php

Создание собственных шаблонов страниц

Файлы, определяющие шаблоны, находятся в папке с темой. Для создания собственного шаблона нужно создать файл. Итак, для примера, назовём наш новый шаблон snarfer.php. В первых строчках файла напишем следующее:

Приведённый код определяет что файл snarfer.php — шаблон «Snarfer» (естественно, вы можете переименовать «Snarfer» во что угодно, только не запутайтесь). Это имя появится в редакторе тем со ссылкой на соответствующий файл.

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

Всё что вы напишете ниже — зависит от вашего желания и фантазии. Остаток кода будет управлять выводом страниц, которые используют наш шаблон «Snarfer». См. Теги шаблонов, где содержатся описания для различных функций вывода. Для удобства при создании своего шаблона можно воспользоваться уже существующим, скопировав его, например, из page.php или index.php в snarfer.php и затем оформив заголовок, как мы это сделали выше. В таком случается останется только подправить код HTML и PHP, вместо того, чтобы набирать всё это «с нуля».

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

Примечание: когда страница создаётся или правится, настройка шаблона не появляется пока не будет создан как минимум один шаблон, как описано выше.

Установка формы поиска на сайт WordPress

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

<form role=»search» method=»get» id=»searchform» action=»<?php echo home_url( ‘/’ ); ?>»>
<div><label class=»screen-reader-text» for=»s»>Search for:</label>
<input type=»text» value=»» name=»s» id=»s» />
<input type=»submit» id=»searchsubmit» value=»Search» />
</div>
</form>

1
2
3
4
5
6

<form role=»search»method=»get»id=»searchform»action=»<?phpechohome_url(‘/’);?>»>

<div><label class=»screen-reader-text»for=»s»>Search for</label>

<input type=»text»value=»»name=»s»id=»s»/>

<input type=»submit»id=»searchsubmit»value=»Search»/>

</div>

</form>

Где Search For вам нужно заменить на «Поиск по сайту», а в поле
input  вместо значения атрибута
value=”Search” , заменить на «Поиск»

Обязательно сохраните изменения.

Затем нам нужно вызвать форму поиска в шаблоне сайта в нужном нам месте. Я на примере поместил форму поиска WordPress в самый верх в шапку сайта. Значит, нам необходимо отредактировать шаблон header.php, что я и сделаю вместе с вами.

Вот код, который я вставил:

<form method=»get» id=»searchform» action=»<?php bloginfo(‘home’); ?>/»>
<input type=»text» class=»searchform» size=»18″ value=»<?php echo wp_specialchars($s, 1); ?>» name=»s» id=»s» placeholder=»Поиск по сайту» /><input type=»submit» id=»searchsubmit» value=»Поиск» class=»btn» />
</form>

1
2
3

<form method=»get»id=»searchform»action=»<?phpbloginfo(‘home’);?>/»>

<input type=»text»class=»searchform»size=»18″value=»<?phpechowp_specialchars($s,1);?>»name=»s»id=»s»placeholder=»Поиск по сайту»/><input type=»submit»id=»searchsubmit»value=»Поиск»class=»btn»/>

</form>

Он немного отличается от предыдущего. Отличается тем, что я добавил для
input  размер поля по длине и высоте, а для кнопки, которая также является
input , добавил css класс. При сохранении результатов, вот что получилось в браузере:

А вот на этом скриншоте (кликабельно) показано, куда я вставлял этот код (чтобы вы понимали суть):

Тут немного поясню. Я создал новый контейнер div с классом search и внутрь него поместил код с формой поиска.

Теперь я покажу какие стили я применил к этой форме:

.search {
width: 266px;
float: left;
margin: 2px 10px 7px 17px;
}
.searchform {
height: 30px;
margin-right: 7px;
width: 169px;
}
.btn {
background-color: #FF7300;
border: none;
width: 80px;
padding: 10px;
}

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

.search{

width266px;

floatleft;

margin2px10px7px17px;

}

.searchform{

height30px;

margin-right7px;

width169px;

}

.btn{

background-color#FF7300;

bordernone;

width80px;

padding10px;

}

Еще раз поясню. Здесь я задал стили для главного родительского контейнера, в котором у меня располагается форма, а также для
input  в который пользователь вводит ключевой запрос для поиска и саму кнопку.

Кстати, если хотите установить Яндекс поиск или , то эти статьи вам в этом помогут.

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

Функция WordPress get_posts

Функция WordPress get_posts () принимает идентификатор сообщения и возвращает данные сообщения из базы данных. Эта функция возвращает массив объектов WP_Post, где каждый объект представляет отдельную публикацию, которая может быть публикацией, страницей или произвольным типом сообщения.

Преимущество использования get_post () над WP_Query () заключается в том, что основной цикл не изменяется, чего нельзя сказать о WP_Query (). Внутренне функция get_posts () также использует объект WP_Query () для получения сообщений на основе переданных аргументов. Однако он гарантирует сброс основного цикла, который вы можете забыть сделать, если используете WP_Query напрямую.

Вот небольшой пример использования функции get_posts ():

В этом случае мы получаем массив сообщений от вызова get_posts (). Если вы посмотрите ссылку на функцию в кодексе, есть еще много параметров, таких как posts_per_page, paged, tax_query и т.д.

Пользовательский тип сообщения WordPress get_posts

Вы также можете использовать функцию get_posts () для получения сообщений пользовательского типа post_type с пользовательским именем таксономии.

get_posts wpml

Плагин WordPress Multilingual добавляет поддержку нескольких языков на страницах WordPress. Он также предоставляет функции, которые работают с классами WordPress WP_Query и WP_Post и предоставляют способ извлекать сообщения на определенных языках и управлять ими.

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

Используйте suppress_filters: установите для параметра suppress_filters функции get_posts значение false. Это позволит функции get_posts () возвращать сообщения только на текущем языке.

Функция WordPress query_posts: Другой предпочтительный вариант – возвращать сообщения с помощью функции query_posts ().. Он принимает в качестве параметра массив аргументов WP_Query и возвращает список объектов сообщения. Функция query_posts () изменяет основной запрос, который WordPress использует для отображения сообщений. Он заменяет основной запрос новым запросом. Поэтому необходимо вызвать wp_reset_query () после query_posts (), чтобы восстановить исходный основной запрос // создать массив аргументов с языком, установленным как en_us

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

Есть и другие параметры, которые обычно используются с функциями query_posts (). Предел WordPress query_posts для возвращаемых сообщений можно установить с помощью параметра «posts_per_page». Если вы хотите вернуть сообщения с определенной страницы, вы также можете использовать параметр query_posts ‘paged’. Параметр смещения WordPress query_posts используется для указания количества сообщений, которые вы хотите пропустить перед тем, как начать список сообщений.

Создание наших циклов

Для начала давайте удалим из файла category.php обращение к части шаблона Twenty Sixteen, поскольку мы будем использовать новый файл.

В файле category.php найдите такой код:

get_template_part( 'template-parts/content', get_post_format() );

Удалите его.

Приступим к созданию циклов.

В этом примере мы перечислим все записи с тэгом ‘content’, используя условный тэг has_tag().

Это значит, что нам нужно запустить 3 цикла:

  • Первый проверяет, отобразил ли запрос записи по этому тэгу
  • Если да, то второй цикл выводит записи с этим тэгом
  • А третий выводит записи без этого тэга

Между циклами мы будем использовать rewind_posts() для перемотки записей без повторной отправки запроса: мы всё еще используем базовый запрос.

Первый цикл: поиск записей

В файле category.php найдите начало цикла:

while ( have_posts() ) : the_post();

Над этой строчкой определите новую переменную с названием $count:

$count = 0;

Вставьте этот код в цикл:

// check if there are any posts with the '' tag
$tag = 'content';
if ( has_tag( $tag ) ) {
    $count +=1;
}

Это проверит ваши записи на наличие тэга ‘content’, и если да, то добавит 1.

Ваш цикл будет похож на этот:

// Check for posts in the first loop.
$count = 0;
while ( have_posts() ) : the_post();
 
// check if there are any posts with the '' tag
$tag = 'content';
if ( has_tag( $tag ) ) {
    $count +=1;
}
     
endwhile;

Второй цикл: вывод записей с тэгом

Следующим шагом будет запуск цикла для вывода записей с тэгом, но только если такие есть. Если значение $count больше .

Добавьте такой код под вашим первым циклом:

if ( $count > 0 ) {
                     
    rewind_posts();
 
    echo '<h2>Posts tagged with ' . $tag . '</h2>';
 
     
    while ( have_posts() ) : the_post();
     
    if ( has_tag( $tag ) ) {            
        get_template_part( 'includes/loop', 'category');    
    }
     
    // End the loop.
    endwhile;
     
}

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

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

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

Под вашим вторим циклом добавьте этот код:

rewind_posts();
         
 
// Second Loop - posts not with the 'content' tag
while ( have_posts() ) : the_post();
         
    if ( !has_tag( $tag ) ) {           
        get_template_part( 'includes/loop', 'category');    
    }
         
// End the loop.
endwhile; ?>

Он перемотает записи и запустит цикл снова. Он проверит записи на отсутствие тэга ‘content’ и выведет их с помощью части шаблона.

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

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

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

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

и

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

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

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

Вывод страниц на сайте

WordPress способен автоматически создавать список страниц сайта, например в боковой колонке, используя метку шаблона называемую wp_list_pages(). Прочтите wp_list_pages для более подробной информации, в том числе как:

  • Сортировать список страниц. Полная настройка порядка вывода описана в секции «Page Order» административной панели Write > Page.
  •  из вывода или прятать страницу
  • Управлять отображением страниц, то есть выводить ли все страницы или некоторые подстраницы.
  • Определять насколько глубоко список уходит в иерархию страниц.

Естественно, вы можете определять ссылки на страницы вручную используя HTML-ссылки. Например, если вы хотите вывести страницу об авторских правах в «подвале», ссылка может быть такой:Если пермалинки НЕ настроены

Если пермалинки настроены

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

Код для главной страницы (раздела) для вывода и РАЗДЕЛЕНИЯ записей по ТЕГАМ

Следующая конструкция выводит записи из категории 27. Сортирует их случайно. Выводит 4 записи.

<?php global $query_string; $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1; $loop = new WP_Query( $args ); $tagvariable = $tag; $args = ‘tag=’ . $tagvariable . ‘&tag_id=27&orderby=rand&posts_per_page=4’; query_posts( $args ); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php get_template_part( ‘/random’ ); ?> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_query(); // Аннулирует данные произвольного запроса WP_Query // Если после цикла используется функция wp_reset_query() для «сброса» данных, // то wp_reset_postdata() использовать не нужно! ?>

В конструкции выше код отвечающий за вывод поста находится в отдельном файле:

<?php get_template_part( ‘/random’ ); ?>
Вышеприведенную конструкцию можно размещать на главной или в любых других разделах сколько угодно раз.

Выводы

ОõýàýðôõõüÃÂÃÂ, ÃÂÃÂþ üðÃÂõÃÂøðû ÿþüþó òðü ÃÂð÷þñÃÂðÃÂÃÂÃÂààòÃÂòþôþü ÿÃÂñûøúðÃÂøù ò ýÃÂöýþü ÿþÃÂÃÂôúõ. ÃÂÃÂûø ÃÂÃÂðÃÂÃÂàþúð÷ðûðÃÂàÿþûõ÷ýþù ø ÿþýÃÂðòøûðÃÂàòðü, ýõ ÷ðñÃÂôÃÂÃÂõ ÿÃÂþúþüüõýÃÂøÃÂþòðÃÂàõõ ø ÿþôõûøÃÂÃÂÃÂàÃÂõýýÃÂü úþýÃÂõýÃÂþü ò ÃÂþÃÂøðûÃÂýÃÂàÃÂõÃÂÃÂÃÂ. ÃÂÃÂôõü þÃÂõýàñûðóþôðÃÂýà÷ð ÃÂÃÂþ!

ÃÂðÃÂÃÂÃÂðøòðàúþûþýúø, òÃÂòþô ÿÃÂñûøúðÃÂøù, ÿþüýøÃÂõ þ ÃÂðüþü óûðòýþü. ÃÂÃÂòþô ÷ðÿøÃÂõù ýðÃÂÃÂÃÂðøòðõÃÂÃÂàýõ ôûàúÃÂðÃÂþÃÂà(ÃÂþÃÂýõõ, ýõ ÃÂþûÃÂúþ ôûàúÃÂðÃÂþÃÂÃÂ), ð ôûàÿþòÃÂÃÂõýøàÃÂ÷ðñøûøÃÂø òðÃÂõóþ ÃÂðùÃÂð. àõÃÂÃÂÃÂàôþûöõý ñÃÂÃÂàøýÃÂõÃÂõÃÂýÃÂü, ÃÂôþñýÃÂü ôûàÿþÃÂõÃÂøÃÂõûÃÂ. ÃÂðöõ ÃÂðüÃÂù ÃÂýøúðûÃÂýÃÂù úþýÃÂõýàýõ ôðÃÂàÃÂõ÷ÃÂûÃÂÃÂðÃÂð, õÃÂûø þý ñÃÂôõàÿûþÃÂþ òþÃÂÿÃÂøýøüðÃÂÃÂÃÂÃÂ. ÃÂðÃÂÃÂÃÂþùÃÂõ òÃÂòþô ÃÂÃÂÃÂðýøàWordPress, ÃÂÃÂþñàøýÃÂþÃÂüðÃÂøàñÃÂûð ôþÃÂÃÂÃÂÿýþù, ÿþýÃÂÃÂýþù, ÃÂøÃÂðñõûÃÂýþù. àòðàÃÂðùàýõÿÃÂõüõýýþ ÃÂÃÂðýõàÃÂÃÂÿõÃÂýÃÂü!

ÃÂòðÃÂðàâ ûøÃÂþ ûÃÂñþóþ ñûþóóõÃÂð ôð ø ÿÃÂþÃÂÃÂþ òûðôõûÃÂÃÂð ðúúðÃÂýÃÂð ýð ÃÂþÃÂÃÂüõ ø ÿþûÃÂ÷þòðÃÂõûàÃÂúþýÃÂðúÃÂõ. ÃÂÃÂø ÃÂÃÂþü ÿþÃÂÃÂðòøÃÂàðòðÃÂðàòàWordPressàýõ ÃÂðú ÿÃÂþÃÂÃÂþ…

ТОП-7 лучших плагинов ВордПресс для вывода рубрик

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

  1. Featured Posts

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

  1. Posts per Cat

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

  1. Content Views

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

  1. The Post Grid

Великолепный модуль Wordress для вывода записей, рубрик страниц. Четыре стиля отображения, вывод осуществляется по меткам. Широкие возможности для оптимизации внешнего вида. Также доступен вывод названия на страничке с анонсами. И если посетитель сайта кликнет по одной из категорий, записи будут отображаться из нее.

  1. Recent Posts Widget Extended

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

  1. Post Tiles

Хотите, чтобы содержимое контента страницы сайта на WordPress отображалось посредством плиток? Сделать это несложно, если установить Post Tiles.

  1. Post Grid

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

Сортировка и вывод постов wordpress через плагин

Итак, устанавливаем плагин page builder by site origin и создаем страницу. Можете для тренировки назвать ее another blog. После создания страницы, переключитесь со стандартного редактора вордпрес в режим page builder чтобы получить доступ к функционалу плагина. Далее поставьте ряд на всю ширину экрана нажав на кнопку «Добавить строку» и выберите виджет из категории «Виджеты Page Builder». Называется он «Цикл записей wordpress».

Чтобы ощутить всю мощь данного плагина нужно иметь на сайте достаточное количество постов. Если у вас мало записей, то добавьте несколько тестовых, привяжите одни к каким-нибудь категориям, другие к меткам, опубликуйте записи блога от лица разных авторов и назначьте им разные даты публикации. Таким образом у вас появится возможность сделать сортировку постов wordpress по разным критериям и в полной мере оценить функционал виджета «Цикл записей».

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: