Произвольные поля (Custom Field )
Custom Field — очень полезная вещь, довольно часто используется для вывода информации после поста. Используется, например, для вывода информации об авторе поста.
11) Как добавить картинку с ссылкой на сам пост
Для начала добавим Произвольное поле в пост.
Чтобы отобразить изображение и прикрепить к нему ссылку на пост, помещаем следующий код в цикл (перед самим текстом поста):
<?php //получаем картинку (custom field) ?> <?php $image = get_post_meta($post->ID, 'article_image', true); ?> <a href="<?php the_permalink() ?>"><img src="<?php echo $image; ?>" alt="<?php the_title(); ?>" /></a> |
Не забывайте, что произвольных полей после поста может быть несколько. Похожий эффект можно увидеть на Best Web Gallery, где подобным образом отображены миниатюры, ссылки URL и подсветка информации. Также о произвольных полях можно почитать в данной статье — использование custom fields в WordPress.
Определите габариты картинок
Большинство из вас, вероятно, видело следующую рекомендацию от Google Pagespeed:
…Предположение по оптимизации: “Сжав и изменив … вы сможете сохранить 5.8 KB (51%).”
Эта рекомендация говорит о том, что размеры изображения были изменены браузером. Например, возможно, вы загрузили картинку шириной 500px, но ширина колонки, в которую оно должно быть помещено, всего 400px. В результате, благодаря CSS, размер картинки был уменьшен до 400px, чтоб изображение соответствовало колонке. Это может стать проблемой для большого количества тем, так как разработчики пересматривают размеры изображений, используя CSS.
Лучше всего загружать картинки в WordPress, используя правильные параметры изначально. Иногда для этого нужно подрезать картинки в Photoshop, Paint или Gimp, перед тем, как вы загрузите их на ваш сайт.
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.
Кейс «QUERY и выпадающий список»
Возьмем табличку с продажами книг. На ее основе будем делать отчет с выпадающим списком, в котором будут все тематики, и формулой QUERY, выводящей книги выбранной тематики и сортирующей их по продажам.
Итак, выпадающий список. Вначале создадим новый лист (допустим, наша исходная таблица огромна, и всю аналитику мы хотим производить на другом листе). Кликаем правой кнопкой мыши на ячейку А1, выбираем Проверка данных.
В Правилах выбираем Значение из списка, перечисляем все наши тематики через запятую и нажимаем Сохранить:
Список получился вот таким:
В соседнюю ячейку А2 впишем следующую формулу:
=QUERY(‘Книги’!A1:C13,»SELECT A, C WHERE B = ‘»&A1&»‘ ORDER BY C DESC»)
И разберем ее по частям:
‘Книги’!A1:C13 — исходный диапазон, таблица с продажами, книгами и тематиками.
SELECT A, C — в сформированную функцией таблицу попадут данные из этих столбцов, то есть названия книг и продажи.
WHERE B = ‘»&A1&»‘ отбирает только те книги, тематика (в столбце B) которых соответствует указанной в ячейке A1
Обратите внимание на синтаксис: текст из ячейки указывается между апострофов, которые относятся к тексту запроса. После них идут кавычки (мы закрываем текст запроса), амперсанд (присоединяем к тексту запроса текст из ячейки), адрес ячейки, еще один амперсанд, после которого в кавычках продолжается текст запроса.
ORDER BY C DESC — сортируем данные по столбцу B (продажам) по убыванию.
Результат:
Изменив тематику в ячейке А1 на философию, мы получим книги только по философии, отсортированные по продажам. Удобно.
Если бы в нашей исходной таблице была дата, мы могли бы добавить ее в условие QUERY и выводить данные за выбранный день, месяц, неделю — таким образом можно получить готовый отчет по продажам, который не нужно каждый раз заново собирать.
Создаем шаблон для архивов рубрик в WordPress
WordPress имеет очень мощный и продвинутый движок шаблонов. Чтобы отобразить определенные страницы, он по умолчанию ищет шаблоны с конкретными именами в вашей теме. К примеру, шаблон category.php в теме используется для отображения всех страниц рубрик. Кроме этого, вы можете легко создавать шаблоны для определенных категорий, просто назвав шаблон именем рубрики. Например, чтобы создать шаблон для рубрики Music, назовите файл шаблона category-music.php и т.д.
Используйте файл category.php вашей темы в качестве исходника для шаблонов других категорий, а затем просто вносите в него необходимые вам изменения. WordPress — прекрасная и удобная CMS, в которой абсолютно все создано лишь для нашего удобства.
Когда можно опустить?
Как мы сказали выше, whom можно опустить. То же самое относится к which, that и who. Когда это можно сделать? Объяснить будет трудновато, но я постараюсь.
Сравни:
⠀Можно опустить | ⠀Нельзя опустить |
Come and look at this photo which Carina sent me.⠀ | He ordered coffee which was promptly brought.⠀ |
Видишь разницу? Если нет, то давай разбираться. Возьмем лишь придаточные предложения и рассмотрим их отдельно:
…which Carina sent me (которую Карина скинула мне).
…which was promptly brought (который был принесен сразу).
– В первом случае подлежащее (=действующее лицо) – Carina. Which – дополнение. В таком случае which можно опустить.
– Во втором случае подлежащее – само местоимение which (именно оно было принесено)
Подлежащее слишком важно. Его опускать нельзя
А когда подлежащим является who, его не только нельзя опускать, но и заменять на that:
This is the man who wants to see you. (Это человек, который хочет встретиться с тобой).
Да и в целом осторожнее заменяй who на that. Когда речь идет о людях, лучше использовать who. Тогда точно не ошибешься.
Решаем проблему медленного admin-ajax.php
In WordPress 3.6 был представлен WordPress Heartbeat API, который позволяет WordPress устанавливать связь между браузером и сервером. WordPress Heartbeat API использует admin-ajax.php, чтоб осуществлять AJAX-обращения из веб-браузера. Вы, вероятно, можете наблюдать это во время проведения скоростного теста. Это может стать причиной активного использования CPU и возникновения множества PHP-обращений. К примеру, если вы оставили админку открытой, то запросы POSTбудут непрестанно посылаться к этому файлу на регулярной основе.
Есть бесплатный плагин для WordPress, который называется heartbeat control и позволяет контролировать то, как часто используется WordPress heartbeat API.
Заметим: есть много сторонних разработчиков, которые сейчас используют этот файл. Если вы заметили задержки, это может быть связано с тем, что плагин использует admin-ajax.php. Xтоб разобраться в этом, вы можете прогнать ваш сайт через инструмент тестирования скорости, определить, где находится обращение admin-ajax.php и открыть данные записи.
Затем вы можете сказать по названию “action” какой плагин его использует. В этом примере у нас “get_shares_count”, что указывает на социальный плагин с выключенным кэшированием. Если включить кэширование, то использование admin-ajax.php прекращается.
Использование кэширования
Кэширование – это еще один важный фактор, который стоит учитывать, если мы хотим разогнать WordPress. Кэширование позволяет хранить ваши страницы и записи в виде статичных файлов, которые затем доставляются вашим посетителям, минимизируя процесс загрузки на вашем сервере. Вы можете использовать кэширование, используя WordPress плагины кэширования и тем самым внедрив кэширование браузера и кэширование со стороны сервера.
Плагины кэширования
Вот несколько лучших бесплатных и платных плагинов кэширования:
Cache EnablerW3 Total CacheWP Super CacheWP Rocket
Установка и правильная настройка плагина кэширования может привести к увеличению производительности в 200-300%!
Обход PHP для кэшируемых страниц
Ниже представлена более продвинутая конфигурация Nginx обхода PHP для кэширования страниц. Этот пример оптимизирован для плагина Cache Enabler.
Пример конфигурации Nginx
set $cache_path $request_uri; # bypass cache if query string not empty if ( $query_string ) { set $cache_path 'nocache'; } # bypass cache for POST requests if ( $request_method = POST ) { set $cache_path 'nocache'; } # bypass cache for admin area if ( $request_uri ~ /wp-admin/ ) { set $cache_path 'nocache'; } # bypass cache for logged in users if ( $http_cookie ~ (wp-postpass|wordpress_logged_in|comment_author)_ ) { set $cache_path 'nocache'; } location / { try_files /wp-content/cache/cache-enabler/${http_host}${cache_path}index.html $uri $uri/ /index.php?$args; }
Кэширование браузера – добавьте заголовки Expires к WordPress
Вы также можете добавить кэширование браузера, добавив заголовки expires. Заголовки Expires говорят браузеру, должны kb они запросить определенный файл с сервера или они должны захватить их из кэша браузера. Добавляя их, вы можете уменьшить количество HTTP-запросов, которые им нужны. Некоторые плагины кэширования для WordPress позволяют добавить их, но вы также можете просто добавить код в ваш файл .htaccess
<IfModule mod_expires.c> # Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" # My favicon ExpiresByType image/x-icon "access plus 1 year" # Images ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpg "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" # CSS ExpiresByType text/css "access plus 1 month" # Javascript ExpiresByType application/javascript "access plus 1 year" </IfModule>
Кэширование сервера
Помимо плагинов кэширования для WordPress и кэширования браузера вы можете использовать преимущества кэширования со стороны сервера. Такой вид кэширования обычно используется на сайтах с большим количеством трафика. Кэширование с Varnish может быть очень мощным, если его скомбинировать с плагином кэширования и CDN.
Prefetch обычно используемых доменов
Prefetching – это нечто сходное кэшированию в том смысле, что вы тоже говорите браузеру, типа Chrome, что нужно найти DNS-настройки перед тем, как они на самом деле понадобятся. Благодаря этому «прошиваются» страницы и запросы любых prefetched-доменов, которые еще не кэшируются, и они начинают работать быстрее.
Вы можете использовать prefetch для доменов в WordPress, добавив синтаксис домена в ваш файл header.php между тегами <head> </head> . Этот процесс не блокируются и будет включаться только тогда, когда возможно. Вот распространенные примеры.
Prefetch Google шрифты:
<link rel="dns-prefetch" href="//fonts.googleapis.com">
Prefetch Google код (jQuery)
<link rel="dns-prefetch" href="//ajax.googleapis.com">
Prefetch Google Analytics
<link rel="dns-prefetch" href="//www.google-analytics.com">
Удаляем Query Strings из статичных ресурсов
Также можно извлечь пользу из удаления query strings из ваших статичных ресурсов, так как они могут приводить к возникновению проблем с прокси кэша и CDN. В WordPress для этого есть парочка опций.
Отредактируйте ваш файл functions.php, чтоб включить туда функцию, которая удалит query strings.
function _remove_script_version( $src ){ $parts = explode( '?ver', $src ); return $parts; } add_filter( 'script_loader_src', '_remove_script_version', 15, 1 ); add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
Если вы используете плагин кэширования типа W3 Total Cache, то у вас есть опция, которая предотвращает создание query strings. Есть бесплатные WordPress-плагины, которые также могут удалить query strings, и это плагины Query Strings Remover и Remove Query Strings From Static Resources.
Использование правильных типов данных
Некоторые функции в Power Query являются контекстными для типа данных выбранного столбца. Например, при выборе столбца даты доступные параметры в группе столбцов даты и времени в меню Добавление столбца будут доступны. Но если для столбца не задан тип данных, эти параметры будут неактивны.
Аналогичная ситуация возникает для фильтров конкретного типа, так как они относятся к определенным типам данных. Если в столбце не определен правильный тип данных, то эти фильтры для конкретного типа будут недоступны.
Крайне важно всегда работать с правильными типами данных для столбцов. При работе с структурированными источниками данных, такими как базы данных, сведения о типах данных будут перенесены из схемы таблицы, найденной в базе данных
Но для неструктурированных источников данных, таких как TXT и CSV-файлы, важно задать правильные типы данных для столбцов, поступающих из этого источника данных.
По умолчанию Power Query предлагает автоматическое обнаружение типов данных для неструктурированных источников данных. Вы можете ознакомиться с дополнительными сведениями об этой функции и о том, как она может помочь в работе с .
Примечание
Дополнительные сведения о важности типов данных и способах работы с ними см. в разделе типы данных
Как настроить публикацию с применением опции Get Posts?
Только что рассказали о том, как настроить вывод названия статьи, ссылку. Однако можно работать не только с этими параметрами. Код, который выведет изображения на сайте (на странице) WordPress, выглядит так:
<?php echo get_the_post_thumbnail(); ?>
Как вывести описание? Достаточно добавить следующий код:
<?php the_excerpt(); ?>
Чтобы вывести дату, используйте:
<?php the_date(); ?>
3 варианта размещения get posts
Когда для отображения используется плагин вывода записей, вопросов почти не возникает. Другое дело, когда нужно вставить код самостоятельно в определенное место. Выбор файла, места зависит от того, где именно хотелось бы вывести публикации Существует 3 распространенных варианта:
- Боковая панель (сайдбар). Все изменения вносятся в sidebar.php
- Текст статьи. Правки осуществляются в single.php
- Необходимо вывести запись под текстом? Ищите page.php
Немного CSS не помешает
Добиться более привлекательного вывода записей можно с помощью… магии CSS. Вставьте код, который увидите ниже, в style.css:
.iw-get-post {
border:1px solid #ccc; /*цвет и толщина рамки*/
background:#f5f5f5; /*цвет фона*/
padding:10px; /*внутренний отступ*/
margin-bottom:10px; /*отступ снизу*/
box-shadow:0 0 6px #555; /*тень*/
}
.iw-get-post .post-title-get-post {
display:block;
width:100%;
font-size:18px; /*размер шрифта заголовка*/
text-align:center; /*выравнивание по центру*/
margin:10px 0px;
}
Хотите за несколько секунд настроить вывод в один ряд по несколько записей. Все в ваших руках – код уже готов:
.iw-get-post {
border:1px solid #ccc; /*цвет и толщина рамки*/
background:#f5f5f5; /*цвет фона*/
padding:10px; /*внутренний отступ*/
margin-bottom:10px; /*отступ снизу*/
box-shadow:0 0 6px #555; /*тень*/
width:28%; /*ширина*/
float:left;
margin-left:1%; /*отступ слева*/
margin-right:1%; /*оступ справа*/
min-height: 650px; /*минимальная высота блока (меняете под себя)*/
}
.iw-get-post .post-title-get-post {
display:block;
width:100%;
font-size:18px; /*размер шрифта заголовка*/
text-align:center; /*выравнивание по центру*/
margin:10px 0px;
min-height: 80px /*минимальная высота заголовка задаётся для выравнивания по высоте (меняете значение на своё)*/;
}
Создание дочерней темы
Сначала давайте создадим дочернюю тему Twenty Sixteen. Мы делаем это, поскольку не хотим редактировать саму тему. Создайте новую пустую папку в директории wp-content/themes. Нашу мы назовём tutsplus-one-query-two-loops.
В этой папке создайте файл с названием style.css и добавьте в него код:
/* Theme Name: Tutsplus One Query Multiple Loops Theme URI: http://.tutsplus.com/tutorials/how-to-code-multiple-loops-while-only-querying-the-database-once--cms-25703 Description: Theme to support Tutorial on running multiple loops while querying the database just once. Child theme for the Twenty Sixteen theme. Author: Rachel McCollin Author URI: Template: twentysixteen Version: 1.0 */ @import url("../twentysixteen/style.css");
Теперь сохраните этот файл и активируйте новую тему.
Следующим шагом будет создание файла шаблона для рубрик, с которыми мы будем работать. Сделайте копию файла archive.php из Twenty Sixteen в вашей новой теме. Не переместите, а скопируйте. Переименуйте файл в category.php. Теперь это файл шаблона рубрик на вашем сайте.
Как использовать Query Monitor
После запуска Query Monitor на панели администратора отобразится набор значений производительности, которые выглядят следующим образом:
0,17 с 10 453 кБ 0,0323 с 123Q
Они показывают значения времени загрузки страницы, используемой памяти, времени запросов к базе данных и количества запросов к базе данных.
При наведении курсора на эту информацию открывается раскрывающееся меню монитора запросов. Нажмите любой пункт меню, чтобы открыть дополнительную панель с дополнительной информацией.
Для тестирования производительности наиболее интересным является первый пункт меню, Queries . Нажмите на нее, и появится панель с большим количеством важной информации о запросах к базе данных
Панель «Запросы» отображает информацию о запросах к базе данных.
Комментарий Котиков
А теперь позвольте развеять ваши сомнения.
Это не помешает вам писать в инфостиле. Точно так же это не вредит вашему отточенному продающему копирайтингу. Это вообще ничему не мешает — если вы поняли, о чем весь этот текст.
Сеошники уже поняли — это про поведенческие. И я не удивлюсь, если вскоре в умных ТЗ появится ссылка на гуглодок с этими подборками
И рекомендации использовать эти мостики, чтобы удерживать внимание читателя
И знаете что? Это работает. Не только на поведенческие.
Писака — всегда манипулятор. Нам нужно, остро нужно, чтобы читатель оставался с нами до самой последней точки. Читал, сопереживал и делал то, о чем мы попросим. Даже если это инструкция про сухую строительную смесь № 117.
Вы согласны? Тогда сохраните статью в закладки и заглядывайте в нее, когда вдохновение забуксует.
P.S. Общее число фразочек мы не пересчитывали.
Используйте надежный фреймворк/тему
За каждым WordPress-сайтом лежит тема или фреймворк, и это иногда может приводить к проблемам. Каждая тема написана по-разному, и потому одни зачастую темы лучше, чем другие. Дефолтные WordPress-темы типа Twenty Fifteen, очень быстрые, потому что легковесные.
Будьте осторожны, когда покупаете темы на таких мега популярных сайтах, как ThemeForest и Creative Market. Несмотря на то, что там много великолепных тем, вы должны понимать, что разработчики часто добавляете функции просто, чтоб увеличить продажи. Так что главное — найти правильных разработчиков. И именно о таких мы не раз писали на страницах этого сайта.
Так же, такие легкие фреймворки, как Thesis Theme framework и Genesis также известны тем, что на их основе разрабатываются быстрые и хорошо написанные темы.
Заключение
Таким образом, чтобы правильно использовать вводные слова при написании научных статей на английском языке, важно:
- использовать конструкции в соответствии с их подтипом;
- избегать неофициальных вводных слов;
- не смешивать несколько видов вводных конструкций в одной части текста;
- правильно располагать вводные слова в предложении;
- обращаться к англоязычным ресурсам с примерами по корректному использованию слов в контекстах.
Грамотное использование вводных слов в научных статьях может показать, насколько автор глубоко владеет иностранным языком, знает и уважает языковую культуру. Лаконичные вводные слова украсят статью, позволят читателям быстро погрузиться в основную идею текста, не отвлекаясь на сложные конструкции.
В заключение:
При переводе иностранных текстов незнание ложных друзей может искажать смысл предложения, запутать, поставить вас в неловкую ситуацию. Не всегда стоит полагаться на первоначальное представление о значении слова. В случае, если слово имеет несколько вариантов перевода, разобраться несложно, ведь мы, как правило, встречаем слово в связной речи.
Запомните самые распространенные примеры ложных друзей, следуйте нашим советам, почаще заглядывайте в словарь. Предупрежден – значит, вооружен! Как и в любом деле, нужно быть внимательным и наблюдательным. Желаем, чтобы ложные друзья переводчика не стали камнем преткновения на пути к овладению английским языком.
Обзор способов вывода произвольных типов записей в WordPress
Мы уже разобрались, как добавлять и работать с кастомными типами записей в админке, теперь давайте рассмотрим способы вывода этих записей на фронтенде.
Как вывести свой тип постов на главной странице сайта
По дефолту все пользовательские типы записей не выводятся на главной странице. Если у вас стоит задача вывести список таких постов на главную, то можете использовать приведенные ниже код, добавив его в файл functions.php вашей темы.
В этом коде $query->set() принимает два параметра:
- приоритет, который нужно изменить, в данном примере post_type.
- массив, который нужно передать как значение для post_type. Как видите в коде указано значение для массива «post», если вам нужно вывести только ваш тип записей, то «post» можно удалить.
В примере мы сделали вывод стандартных постов и записей типа books. Название типа записей стоит указывать то же, что вы задавали при регистрации кастомного типа.
Цикл для вывода своих типов постов в любом месте сайта
Для этих целей используется класс WP_Query и цикл WordPress.
Таким образом, вы сможете вывести записи данного типа, например, в отдельном блоке на главной или же в качестве рекомендуемого контента на странице поста.
Вывод постов из custom post type в виджете
В WordPress есть стандартный виджет, который позволяет выводить записи, но в нем отсутствует функционал по выбору нужного нам типа записей. В качестве альтернативы вы можете установить и активировать плагин – «Ultimate Posts Widget». Далее перейти в меню «Внешний вид» — «Виджеты» и перетащить в область виджета блок «Ultimate Posts».
Данный плагин позволяет вам отсортировать записи по любому кастомному типу, а также сделать настройки по самому виду постов.
Выводим записи с помощью стандартного меню движка
Для этого переходим в раздел админки «Внешний вид» — «Меню». Слева выберите пункт меню «Произвольные ссылки» и укажите название меню, например «Обзоры книг» и slug, который вы задавали при регистрации типа записи, в наше случае это «books», например http://site.com/books.
Тут же вы можете вывести отдельную запись из своего кастомного типа постов, выбрав вкладку «Книги».
Выводы
Совсем не сложно запустить множественные циклы одним запросом. Вместо сброса запроса и создания нового, используйте функцию rewind_posts() для перемотки запроса и его повторного запуска. А вместо определения новых параметров, используйте условные тэги для определения, какой пост стоит вывести.
Важно: Не используйте query_posts() для изменения базового запроса. Это замедлит ваш сайт, как при использовании множественных запросов
В нашем примере мы запустили два цикла, основанных на базовом запросе, который избавил WP_Query от двух дополнительных запросов и уменьшил нагрузку сайта.