Пропустить

Как правильно использовать WP_Query на WordPress

Divi: самая простая тема WordPress для использования

Divi: Лучшая тема WordPress всех времен!

Более Загрузка 600.000, Divi - самая популярная тема WordPress в мире. Он является полным, простым в использовании и поставляется с более чем бесплатными шаблонами 62. [Рекомендуется]

Я большой поклонник класса 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» из папок родительской темы (двадцать шестнадцать) и найдите следующий код:

<article id = "post - <? php the_ID (); ?> "<? Php post_class (); ? >>

<header class = "entry-header">

<? php if (is_sticky () && is_home () &&! is_paged ()):?>

<span class = "sticky-post"> <? php _e ('Featured', 'twentysixteen'); ?> </ Span>

<? php endif; ?>

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

</ header> <! - .entry-header ->

<? php twentysixteen_excerpt (); ?>

<? php twentysixteen_post_thumbnail (); ?>

<div class = "entry-content">

<? Php

/ * переводчики:% s: название текущего сообщения * /

the_content (sprintf (

__ ('Продолжить чтение <span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen'),

get_the_title ()

));

wp_link_pages (массив (

'before' => '<div class = "page-links"> <span class = "page-links-title">'. __ («Страницы:», «Двадцать шестнадцать»). </ Span>»,

'after' => '</ div>',

'link_before' => '<span>',

'link_after' => '</ span>',

Вы ищете лучшие темы и плагины WordPress?

Загрузите лучшие плагины и темы WordPress на Envato и легко создайте свой сайт. Уже больше, чем 49.720.000. [ЭКСКЛЮЗИВ]

'pagelink' => '<span class = "screen-reader-text">'. __ («Страница», «Двадцать шестнадцать»). </ span>% ',

'separator' => '<span class = "screen-reader-text">, </ span>',

));

>

</ div> <! - .entry-content ->

<footer class = "entry-footer">

<? php twentysixteen_entry_meta (); ?>

<? Php

edit_post_link (

Sprintf (

/ * переводчики:% s: название текущего сообщения * /

__ ('Edit <span class = "screen-reader-text"> "% s" </ span>', 'twentysixteen'),

get_the_title ()

),

'<span class = "edit-link">',

</ Span> '

);

>

</ footer> <! - .entry-footer ->

</ article> <! - #post - ## ->

Скопируйте этот код в новый файл «loop-category.php» дочерней темы.

Редактирование файла части шаблона

Цикл «двадцать шестнадцать» отображает больше, чем мне нужно, поэтому я собираюсь изменить этот код. Я просто хочу показать фрагмент, а не содержимое, поэтому мы удалим содержимое.

В чем разница между H1 и SEO-заголовком статьи WordPress? Узнайте, консультируясь с этой статьей.

В вашем новом файле loop-category.php найдите этот код и удалите его:

<div class = "entry-content">

<? Php

/ * переводчики:% s: название текущего сообщения * /

the_content (sprintf (

__ ('Продолжить чтение <span class =' ​​screen-reader-text '>'% s '</ span>', 'twentysixteen'),

get_the_title ()

));

wp_link_pages (массив (

'before' => '<div class = "page-links"> <span class = "page-links-title">'. __ («Страницы:», «Двадцать шестнадцать»). </ Span>»,

'after' => '</ div>',

'link_before' => '<span>',

'link_after' => '</ span>',

'pagelink' => '<span class = "screen-reader-text">'. __ («Страница», «Двадцать шестнадцать»). </ span>% ',

'separator' => '<span class = "screen-reader-text">, </ span>',

));

>

</ div> <! - .entry-content ->

Другим шагом является замена функции Twenty_sixteen_excerpt () на функцию the_excerpt (), потому что в версии двадцать шестнадцати нет ссылки на полную статью.

Смотрите также Как просмотреть последние статьи в конкретной категории

Найдите эту строку:

<? Php twenty_sixteen_excerpt (); ?>

Замените это на это:

<? Php the_excerpt (); ?>

Нам также нужно внести некоторые изменения в теги заголовка.

В части модели измените строку:

<? php the_title (sprintf ('<h2 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h2 > '); ?>

Отредактируйте теги H2 для H3:

<? php the_title (sprintf ('<h3 class = "entry-title"> <a href="%s »rel="bookmark">' esc_url (get_permalink ())), '</a> </ h3 > '); ?>

Зарегистрируйте свою модель. Затем вернитесь в ваш файл category.php, и мы продолжим с ним.

Создание петель

Сначала мы удалим включение кода «двадцать шестнадцать» из нашего файла «category.php», потому что нам нужно будет использовать новый файл.

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

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

И удалите.

Затем мы создадим петли.

В этом примере я покажу все статьи с тегом «content», используя условный тег «has_tag ()». Это означает, что мне придется пройти через три цикла:

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

Легко создайте свой сайт с Elementor

Elementor позволяет легко создать любой дизайн сайта с профессиональным дизайном. Прекратите платить дорого за то, что вы можете сделать сами. [Free]

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

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

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

в то время как (have_posts ()): the_post ();

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

$ Count = 0;

Затем, внутри этого цикла, добавьте этот код:

// проверяем, есть ли сообщения с тегом »

$ tag = 'content';

if (has_tag ($ tag)) {

$ count + = 1;

}

Этот код проверяет, имеют ли сообщения метку «содержимое», а затем добавляет 1 к счетчику, если да.

Внутренняя часть цикла будет похожа на это:

// Проверяем сообщения в первом цикле.

$ Count = 0;

в то время как (have_posts ()): the_post ();

// проверяем, есть ли сообщения с тегом »

$ tag = 'content';

if (has_tag ($ tag)) {

$ count + = 1;

}

ENDWHILE;

Второй цикл: восстановление статей с тегом

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

Например, если значение $ count больше, чем 0.

Откройте для себя тоже Как настроить панель WordPress для клиента

Добавьте это условие в цикл:

if ($ count> 0) {

rewind_posts ();

echo '<h2> Посты с тегом'. $ tag. </ H2> «;

в то время как (have_posts ()): the_post ();

if (has_tag ($ tag)) {

get_template_part ('includes / loop', 'category');

}

// Завершаем цикл.

ENDWHILE;

}

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

Третий цикл: просмотр остальных статей

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

Учись также Как создать мульти-автор блога и позволит вашим читателям размещать статьи на вашем блоге

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

rewind_posts ();

// Второй цикл - сообщения не с тегом 'содержимого'

в то время как (have_posts ()): the_post ();

if (! has_tag ($ tag)) {

get_template_part ('includes / loop', 'category');

}

// Завершаем цикл.

ENDWHILE; ?>

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

Легко создайте свой интернет-магазин

Загрузите бесплатные WooCommerce, лучшие плагины для электронной коммерции, чтобы продавать свои физические и цифровые продукты в WordPress. [FREE]

Мы также предлагаем вам открыть Как добавить печатипараметр статьи на WordPress

Теперь вы можете проверить страницу статей вашего блога. Помните, что вы можете изменить фильтры. В этом уроке мы использовали «контент» в качестве фильтра меток, но вы можете использовать тот, который вы выберете.

Откройте для себя также несколько премиальных плагинов WordPress

Вы можете использовать другие плагины WordPress, чтобы придать современный вид и оптимизировать управление вашим блогом или веб-сайтом.

Мы предлагаем вам несколько премиальных плагинов WordPress, которые помогут вам сделать это.

1. Социальная стена Addon для UserPro

UserPro может быть намного веселее с социальной стеной. Это то, что дает расширение социальной стены. С помощью расширения Social Wall вы можете создать стену на своем веб-сайте и предложить своим членам освежающий способ взаимодействия с сообществом.

Плагин WordPress Social Wall позволяет вашим пользователям: обмениваться сообщениями между собой, обмениваться изображениями, комментировать посты других людей, пользователям может нравиться или не нравиться сообщение, они могут выбрать отображение стены только для пользователей. пользователи, вошедшие в систему или для всех пользователей, администраторы могут удалять сообщения или комментарии пользователей и т. д.

скачать | Демонстрация | веб-хостинг

2. Flipkart Affiliate Plus

Flipkart Affiliate Plus - это модульный плагин WordPress, который соединяет ваш веб-сайт WordPress с партнерским API Flipkart.

Этот плагин 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.

А пока расскажите нам о своем Комментарии и предложения в специальном разделе.

...

Эта статья содержит комментарии 7
  1. ___________ ________ _____ ____________
    | Статья 1 | | арти 2 | | _A3_ | | |
    | __________ | | _______ | _____ | Статья 6 |
    ______________________ | 5 | | |
    | _________ 4 _________ | | ____ | | ___________ |

  2. Привет Blair
    спасибо за эти учебники parfais,
    Я прошу немного помочь, пожалуйста.
    Я создаю свою собственную тему WordPres (HTML / CSS), и у меня есть проблема, которую я попытаюсь разработать: я планирую создать сайт, похожий на msn.com, мой сайт будет разделен на несколько разделов (разделов) ) которые: новости, развлечения, здоровье, образ жизни ... и т. д. то есть я хочу реализовать первую группу статей, а вторую группу - третью ... и т. д. но показывать все группы на одной странице, и каждая группа относится к категории (нише). Интересно, может ли этот WordPress бэк-офис управлять контентом каждой темы в отдельности? с циклом wordpress // Содержание сообщения извините, посты не найдены! Я получаю смесь предметов:
    то есть сказать, что моя последняя статья письма помещается непосредственно на первой секции, которые являются новости, а это статья, которая принадлежит к такому образу жизни.
    Я наткнулся на эту страницу https://codex.wordpress.org/fr:La_Boucle Я думаю, что часть несколько петли могут решить мою проблему!
    Надеюсь, вы понимаете, что я пытаюсь сказать

    спасибо заранее за ответ,
    С уважением,

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

      1. Bonjour.
        прежде всего спасибо за ваш быстрый ответ. Я думаю, что тема, которую я только что создал, больше не совместима с WordPress, и отсюда проблема.
        в комментариях сделал, так как вы не поддерживая приложенное изображение Я объясню по рисунку:
        здесь есть сайт категории
        ___________ ________ _____ ____________
        | Статья 1 | | арти 2 | | _A3_ | | | так что представьте, что каждая статья
        | __________ | | _______ | _____ | Статья 6 | представлены плиткой; так что у нас есть 6
        ______________________ | 5 | | | статьи (каждая плитка содержит изображение
        | _________ 4 _________ | | ____ | | ___________ | и название конкретной статьи)

        Моя настоящая проблема, мистер Блэр, заключается в том, что я не могу завершить свои статьи, чтобы они могли перейти с плитки 1 на плитку 6, то есть когда я добавляю новую статью и что Я публикую его, я хочу, чтобы последняя заняла место статьи 1, как и во всех существующих темах.
        - Я думаю, что это невозможно, поскольку каждый пост (статья) имеет свои собственные свойства, такие как местоположение, высота, ширина и т. Д., Что вы думаете тогда?
        конечно, идея немного неясна с этой схемой, иначе, если я вас не беспокою, и вы хотели бы мне помочь, у вас есть мой адрес электронной почты (вам нужно только отправить электронное письмо, содержащее ваше имя).

        Еще раз спасибо за ваши поточные

        1. Добрый вечер, в этом конкретном случае вам нужно будет прыгать с переменными типа «int», поэтому каждый раз, когда цикл цикла, вы увеличиваете переменную и в зависимости от значения переменной, вы можете изменить отображение статьи. Например:

          если ($ я == 1) {
          // ваш код здесь
          } Else если ($ я == 2) {
          // такие
          }
          $ I ++;

          К сожалению, я не могу помочь вам лично в это время.

  3. [...] В этом уроке я научу вас, как более эффективно использовать их WP_Query запросов на WordPress. [...]

Оставить комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

Этот сайт использует Akismet для уменьшения нежелательности. Узнайте больше о том, как используются ваши комментарии.

Вверх
20 акции
доля18
чирикать2
Регистрация