Я большой поклонник класса WP_Query: я использую его на нескольких клиентских веб-сайтах для персонализированного получения и отображения данных.
Если вы хотите использовать несколько циклов на странице, лучший способ сделать это - запустить «WP_Query» всякий раз, когда вам нужно выполнить цикл.
Но есть один недостаток: всякий раз, когда WordPress выполняет цикл, он отправляет запросы в базу данных, что занимает больше времени и может замедлить работу вашего сайта.
В этом уроке я покажу вам, как использовать запрос для более чем одного цикла. Вы можете сделать это с помощью основного запроса или использовать ту же технику с WP_Query.
Мы рассмотрим аспекты 3:
- Создайте дочернюю тему и файл шаблона.
- Создайте часть шаблона для содержимого цикла.
- Создайте наши петли.
Но прежде чем мы узнаем вместе Как установить WordPress блог шаги 7 et Как найти, установить и активировать WordPress тему на своем блоге
Тогда вернемся к тому, почему мы здесь.
Что вам нужно
Для выполнения этого урока вам потребуется:
- Из установки WordPress для разработки (локально).
- Редактор кода.
- Статьи на вашем сайте с несколькими назначенными категориями
- двадцать шестнадцать тема WordPress
- Детская тема из двадцати шестнадцати установлена и активирована
Этот метод также адаптируется к вашей ситуации и вашим WordPress тема.
Создание детской темы
Сначала мы собираемся создать дочернюю тему двадцать шестнадцать. Я делаю это, потому что не хочу менять родительскую тему.
Откройте для себя Как установить WordPress тема ребенка
В папке «wp-content / themes» создайте новую пустую папку, которую вы назовете «tutor-theme». Позже вы можете выбрать имя, которое подходит вам.
В этой папке создайте файл с именем style.css и добавьте следующий код:
/*
Название темы: Тема Туто
URI темы: https://blogpascher.com
Описание: Тема поддержки Tutorial по запуску нескольких циклов при выполнении запроса к базе данных только один раз. Детская тема для темы «Двадцать шестнадцать».
Автор: Эрве
URI автора: https://blogpascher.com
Шаблон: Двадцать шестнадцать
Версия: 1.0
*/
@import url ("../twentysixteen/style.css");
Теперь сохраните этот файл и активируйте новый WordPress тема.
Следующим шагом будет создание файла шаблона для категорий, над этим мы и будем работать.
Сделайте копию файла «archive.php» из WordPress тема «Двадцать шестнадцать». Не перемещайте его, а сделайте копию. Переименуйте его в «category.php».
Чтобы пойти дальше, откройте для себя Как управлять файлами и папками WordPress
Теперь это будет файл шаблона для категорий вашего сайта.
Создание нового файла шаблона
Первым шагом является создание нового файла шаблона в нашей теме, который будет содержать измененную версию цикла «двадцать шестнадцать».
Давайте также посоветоваться вместе Как перевести ваш сайт WordPress в режим обслуживания
В папке дочерней темы создайте подпапку с названием «include». А внутри создайте новый файл с именем «loop-category.php».
Затем откройте файл «template-parts / content.php» из папок родительской темы (двадцать шестнадцать) и найдите следующий код:
" >
', esc_url (get_permalink ())),' '); ?>
/ * переводчики:% s: название текущего сообщения * /
the_content (sprintf (
__ ('Читать далее '% s ' ', 'двадцать шестнадцать'),
get_the_title ()
));
wp_link_pages (массив (
'перед' => ' '. __ ('Страницы:', 'двадцать шестнадцать'). ' ',
'после' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Страница', 'двадцать шестнадцать'). ' %',
'separator' => ' , ',
));
?>
edit_post_link (
Sprintf (
/ * переводчики:% s: название текущего сообщения * /
__ ('Редактировать '% s ' ', 'двадцать шестнадцать'),
get_the_title ()
),
' ',
''
);
?>
Скопируйте этот код в новый файл «loop-category.php» дочерней темы.
Редактирование файла части шаблона
Цикл «двадцать шестнадцать» показывает больше, чем мне нужно, поэтому я собираюсь изменить этот код. Я просто хочу показать фрагмент, а не контент, поэтому мы собираемся удалить контент.
В чем разница между H1 и SEO-заголовком статьи WordPress? Узнайте, консультируясь с этой статьей.
В вашем новом файле loop-category.php найдите этот код и удалите его:
<div class = "entry-content">
/ * переводчики:% s: название текущего сообщения * /
the_content (sprintf (
__ ('Читать далее '% s ' ', 'двадцать шестнадцать'),
get_the_title ()
));
wp_link_pages (массив (
'перед' => ' '. __ ('Страницы:', 'двадцать шестнадцать'). ' ',
'после' => ' ',
'link_before' => ' ',
'link_after' => '',
'pagelink' => ' '. __ ('Страница', 'двадцать шестнадцать'). ' %',
'separator' => ' , ',
));
?>
Другой шаг - заменить функцию «XNUMX_sixteen_excerpt ()» на функцию «the_excerpt ()», поскольку в версии «двадцать шестнадцать» нет ссылки на полную статью.
Смотрите также Как просмотреть последние статьи в конкретной категории
Найдите эту строку:
Замените это на это:
Нам также нужно внести некоторые изменения в теги заголовка.
В части модели измените строку:
', esc_url (get_permalink ())),' '); ?>
Отредактируйте теги H2 для H3:
', esc_url (get_permalink ())),' '); ?>
Зарегистрируйте свою модель. Затем вернитесь в ваш файл category.php, и мы продолжим с ним.
Создание петель
Прежде всего, мы удалим включение кода «двадцать шестнадцать» из нашего файла «category.php», так как нам нужно будет использовать новый файл.
В вашем файле category.php найдите этот код:
get_template_part ('части шаблона / контент', get_post_format ());
И удалите.
Затем мы создадим петли.
В этом примере я покажу все сообщения с тегом «content», используя условный тег «has_tag ()». Это означает, что мне придется пройти три цикла:
- Первая проверка, если запрос разместил элементы с этим тегом.
- Если это так, второй отображает статьи с этим ярлыком.
- Третий показывает статьи без этого тега.
Между каждым циклом я буду использовать rewind_posts () для перемотки сообщений без сброса запроса: мы всегда работаем с основным запросом каждый раз.
Первый цикл: проверка статей
В вашем файле "category.php" найдите начало цикла:
в то время как (have_posts ()): the_post ();
Над этой строкой определите новую переменную с именем $ count:
$ Count = 0;
Затем внутри этого цикла добавьте этот код:
// проверяем, есть ли сообщения с тегом »
$ tag = 'контент';
if (has_tag ($ tag)) {
$ count + = 1;
}
Этот код проверяет, есть ли у сообщений метка «содержание», а затем добавляет 1 к счетчику, если это так.
Внутренняя часть цикла будет похожа на это:
// Проверяем сообщения в первом цикле.
$ Count = 0;
в то время как (have_posts ()): the_post ();
// проверяем, есть ли сообщения с тегом »
$ tag = 'контент';
if (has_tag ($ tag)) {
$ count + = 1;
}
ENDWHILE;
Второй цикл: восстановление статей с тегом
Следующим шагом будет цикл для отображения статей с этим тегом, только если они есть.
Например, если значение $ count больше, чем 0.
Откройте для себя тоже Как настроить панель WordPress для клиента
Добавьте это условие в цикл:
if ($ count> 0) {
rewind_posts ();
эхо ' Сообщения с тегом '. $ tag. ' ';
в то время как (have_posts ()): the_post ();
if (has_tag ($ tag)) {
get_template_part ('включает / цикл', 'категория');
}
// Завершаем цикл.
ENDWHILE;
}
Этот код проверяет, что $ count больше нуля, и если это так, перематывает элементы и снова запускает цикл. Для каждого элемента он проверяет, владеет ли он нашей меткой, и, если это так, он вызывает часть только что созданного шаблона.
Третий цикл: просмотр остальных статей
Результатом будет последний цикл для остальных статей. Если в этой категории нет статьи с тегом «контент», будут отображены все статьи в категории.
Учись также Как создать мульти-автор блога и позволит вашим читателям размещать статьи на вашем блоге
Во втором цикле добавьте это:
rewind_posts ();
// Второй цикл - сообщения не с тегом content
в то время как (have_posts ()): the_post ();
if (! has_tag ($ tag)) {
get_template_part ('включает / цикл', 'категория');
}
// Завершаем цикл.
конец пока; ?>
Этот последний код перематывает статьи, а затем снова выполняет цикл. На этот раз он проверяет, не имеет ли статья тега «content», а затем отображает содержимое в «части шаблона».
Мы также предлагаем вам открыть Как добавить печатипараметр статьи на WordPress
Теперь вы можете проверить страницу статей вашего блога. Помните, что вы можете изменить фильтры. В этом уроке мы использовали «контент» в качестве фильтра меток, но вы можете использовать тот, который вы выберете.
Откройте для себя также несколько премиальных плагинов WordPress
Вы можете использовать другие WordPress плагины чтобы придать современный вид и оптимизировать обработку вашего блога или веб-сайта.
Мы предлагаем вам несколько премиальных плагинов WordPress, которые помогут вам сделать это.
1. Социальная стена Addon для UserPro
UserPro может быть намного веселее с социальной стеной. Это то, что дает его расширение Social Wall. С помощью плагина Social Wall вы можете создать стену на своем веб-сайте и предоставить своим участникам новый способ взаимодействия с сообществом.
Le Плагин Wordpress Социальная стена позволяет вашим пользователям: обмениваться сообщениями друг с другом, обмениваться изображениями, комментировать сообщения других людей, пользователям может нравиться или не нравиться сообщение, они могут выбрать отображение стены только для вошедших в систему пользователей или для всех пользователей, администраторы могут удалять сообщения или комментарии пользователей и т. д.
скачать | Демонстрация | веб-хостинг
2. Flipkart Affiliate Plus
Flipkart Affiliate Plus — это Плагин Wordpress модуль, который подключает ваш веб-сайт WordPress к Flipkart Affiliate API.
Ce Плагин Wordpress С его помощью очень легко импортировать данные о продуктах из Flipkart и обновлять их прямо на вашем веб-сайте. Flipkart Affiliate Plus — первый плагин WordPress для официального API Flipkart. Используя его, вам не нужно будет использовать сторонний API. Таким образом, вы получаете полную выгоду от своей работы.
скачать | Демонстрация | веб-хостинг
3. Действующая Google Analytics для WooCommerce
Actionable Google Analytics - это плагин WordPress, который позволяет использовать некоторые из лучших функций Universal Analytics, в том числе: расширенную электронную торговлю и отслеживание идентификаторов пользователей. Кроме того, этот плагин поддерживает анонимность IP-адресов, возврат средств за продукт, группировку контента, отслеживание форм и т. Д.
Используя этот плагин WordPress, вы сэкономите время на интеграции сложного кода Google Analytics, что позволит вам сосредоточиться на управлении своими данными.
Его основные функции: быстрая и простая установка, доступ к 9 расширенным отчетам электронной коммерции, возможность изучать, как разные устройства используются одним и тем же пользователем и как совершаются покупки, возможность проанализировать, за какие продукты чаще всего возмещаются расходы, наконец, принять меры по исправлению положения и многое другое.
скачать | Демонстрация | веб-хостинг
Другие рекомендуемые ресурсы
Мы также приглашаем вас ознакомиться с указанными ниже ресурсами, чтобы получить дополнительную информацию о вашем веб-сайте и блоге.
Заключение
Вот ! Вот и все для этого довольно технического руководства. Надеюсь, мы подробно рассказали, как правильно использовать WP_Query в WordPress. не стесняйтесь поделитесь советом с друзьями в социальных сетях.
Однако вы также сможете ознакомиться с нашими Ressources, если вам нужно больше элементов для реализации ваших проектов создания интернет-сайтов, обратитесь к нашему руководству по Создание блога на WordPress.
А пока расскажите нам о своем Комментарии и предложения в специальном разделе.
...
привет
В любом случае, большое спасибо за ваши ответы, и я желаю вам удачи
мерси
___________ ________ _____ ____________
| Статья 1 | | арти 2 | | _A3_ | | |
| __________ | | _______ | _____ | Статья 6 |
______________________ | 5 | | |
| _________ 4 _________ | | ____ | | ___________ |
Привет Blair
спасибо за эти учебники parfais,
Я хотел бы попросить о небольшой помощи.
Я создал свою собственную тему wordpres (html / css) и столкнулся с небольшой проблемой, которую постараюсь решить для вас: я собираюсь создать сайт, похожий на msn.com, мой сайт будет разделен на несколько разделов (заголовки ), к которым относятся: новости, развлечения, здоровье, образ жизни и т. д. то есть я хочу реализовать первую группу статей, вторую группу, третью ... и т. д. но отображать все группы на одной странице и что каждая группа принадлежит какому-либо разделу (нише). Интересно, может ли этот бэк-офис WordPress управлять содержимым каждого раздела отдельно? с циклом wordpress // Содержание сообщения извините, сообщений не найдено! Я получаю разные предметы:
То есть моя последняя написанная статья помещена прямо в первый раздел, который является новостями, тогда как это статья, например, относящаяся к образу жизни.
Я наткнулся на эту страницу https://codex.wordpress.org/fr:La_Boucle Я думаю, что часть несколько петли могут решить мою проблему!
Я надеюсь ты понимаешь что я пытаюсь сказать
спасибо заранее за ответ,
С уважением,
Привет,
Я думаю, вы зря усложняете себе жизнь. Я уже понимаю, что вы хотите систематизировать свои статьи по категориям (разделам), и каждый раздел может принадлежать нише, а это могут быть родительские категории. Да, цикл может помочь вам в этом, и он впечатляюще прост.
Мужество!
Bonjour.
во-первых, спасибо за быстрый ответ. Я думаю, что тема, которую я только что создал, больше не совместима с wordpress, и именно в этом проблема.
Фактически, поскольку ваши комментарии не поддерживают прикрепленное изображение, я объясню, нарисовав:
здесь есть сайт категории
___________ ________ _____ ____________
| Статья 1 | | арти 2 | | _A3_ | | | так что представьте, что каждая статья
| __________ | | _______ | _____ | Статья 6 | представлены плиткой; так что у нас есть 6
______________________ | 5 | | | предметы (каждая плитка содержит изображение
| _________ 4 _________ | | ____ | | ___________ | и название конкретной статьи)
Моя настоящая проблема, мистер Блер, в том, что я не могу обернуть свои статьи так, чтобы они могли перемещаться из квадрата 1 в квадрат 6, т.е. когда я добавляю новый элемент и Публикую, хочу, чтобы она заняла место статьи 1, как во всех существующих темах.
- Я считаю, что это непрактично, так как каждый пост (статья) имеет свои собственные свойства, такие как местоположение, высота, ширина… и т.д., что вы тогда думаете?
конечно, идея этой диаграммы немного ясна, иначе, если я не возражаю и вы хотели бы мне помочь, у вас есть моя электронная почта (вам нужно только отправить электронное письмо с вашим именем).
Еще раз спасибо за ваши поточные
Добрый вечер, в этом случае вам нужно будет добавить переменные типа "int", поэтому каждый раз, когда цикл цикла, вы увеличиваете переменную и в зависимости от значения переменной вы можете изменять отображение статьи. Например :
если ($ я == 1) {
// ваш код здесь
} Else если ($ я == 2) {
// такие
}
$ I ++;
К сожалению, я не могу помочь вам лично в это время.