Шпаргалка по функциям WordPress: краткое и удобное руководство для разработчиков.
Шпаргалка по функциям WordPress: краткое и удобное руководство для ра?.
Ищете быстрое и простое в использовании руководство по часто используемым функциям ? Используйте эту удобную шпаргалку, чтобы улучшить свои навыки и эффективность в разработке плагинов и тем .
Большинство тем и плагинов ищут способы создания списков на основе нескольких условий и критериев. Вам часто нужно определить, что вам нужно на странице, и соответственно подтянуть сообщения. Вам также может потребоваться использовать другую информацию из запросов, если вы хотите
Функции, классы и многое другое
Функции предоставляют возможность создавать, изменять темы и добавлять дополнительные функции в плагины. Функции многочисленны и сложны. Это делает почти невозможным запоминание даже самых основных функций. Таким образом, вы, возможно, привыкли постоянно ссылаться на
WP_Query – это класс, описывающий запрос . Объект класса предоставляет подробную информацию о запросе, сделанном сообщением или страницей в блоге . Он используется для определения типа запроса, например датированного архива, ленты новостей, поиска и т.д., И, соответственно, получения .
Вы можете использовать его для определения запроса для страницы для фильтрации на странице. WP_Query не только извлекает определенные сообщения для страницы, но также предоставляет дополнительную информацию о них. Это безопасный, простой и модульный подход для отправки сложных запросов в базу данных.
Начнем с понимания того, как создавать объекты WP_Query. Мы опишем часто используемые функции для создания и использования ваших собственных объектов WP_Query.
Новая функция WP_Query
Вы можете создать объект класса WP_Query, вызвав новую функцию WP_Query. При создании объекта вы можете указать для него список аргументов. Эти аргументы определяют объект WP_Query и определяют, какие сообщения будут перечислены в создаваемом объекте.
Аргумент WP_Query() список длинный, и вы можете найти их в списке на своей странице Codex.
Пример создания объекта WP_Query для всех с тегом «xyz» и категорией «последние»:
//specify the argument list $args = array( 'tag' => ‘xyz’, ‘category => ‘latest’); //construct the query object $query = new WP_Query($args);
Итак, мы видим, что мы указываем аргументы как массив, хранящийся в переменной $ args. Затем мы создаем с ним новый объект WP_Query и сохраняем созданный объект в переменной $ query. На эту переменную $ query можно ссылаться в более позднем коде, чтобы получить информацию, хранящуюся в ней.
определяет различные параметры, которые могут быть отправлены в качестве аргументов этой функции. Давайте рассмотрим некоторые из этих параметров и методы создания объектов WP_Query с изменяющимся списком аргументов.
WP_Query по id
Объект WP_Query может использоваться для получения сообщения или страницы по идентификатору с использованием параметров «p» и «page_is» соответственно.
Показать сообщение по ID:
Укажите идентификатор сообщения как значение параметра ‘p’ в списке аргументов WP_Query, как показано ниже.
$query = new WP_Query( array( 'p' => 7) );
Отображать сообщения по ID страницы:
Укажите идентификатор страницы в качестве значения параметра page_id в списке аргументов WP_Query, как показано ниже.
$query = new WP_Query( array( 'page_id' => 7) );
Сортировка с помощью WP_Query orderby
Одним из часто используемых аргументов, предоставляемых функции WP_Query (), является параметр ‘orderby’. Вы можете использовать порядок по аргументу для сортировки по таким параметрам, как заголовок, автор и т.д. Для этого аргумента доступны один или несколько вариантов. Также здесь необходим параметр «порядок», который может быть по возрастанию или по убыванию. Если есть только одна опция, она передается как аргумент ‘orderby’ со значением ‘order’ как по возрастанию, так и по убыванию. Несколько вариантов передаются в виде массива параметров и значений порядка. Параметром порядка по умолчанию является дата (post_date) с порядком убывания.
- Пример одного аргумента orderby:
//order posts in descending order of title $args = array( 'orderby' => 'title', 'order' => 'DESC', ); $query = new WP_Query( $args );
- Пример нескольких аргументов orderby с одинаковым порядком:
//Display pages ordered by 'title' and 'menu_order’. $args = array( 'orderby' => 'title menu_order', 'order' => 'ASC', ); $query = new WP_Query( $args );
Обратите внимание, что заголовок имеет более высокий приоритет и стоит перед порядком меню в порядке списка.
- Пример нескольких аргументов orderby с разным порядком:
$args = array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC') ); $query = new WP_Query( $args );
Параметр поиска WP_Query
Используйте параметр поиска, чтобы получать сообщения на основе поиска по ключевым словам. Ключ параметра – «s», а его значение – ключевое слово для поиска.
Пример отображения , соответствующих поисковому запросу «search_item»:
$query = new WP_Query( array( 's' => ‘search_item’) );
Объект запроса создается для , которые соответствуют ключевому слову search_item в заголовке и содержании поиска.
Параметр WP_Query posts_per_page
Параметр posts_per_page для WP_Query указывает количество , отображаемых на странице. Если вы хотите показать все сообщения, используйте для этого параметра значение -1.
- Пример отображения 3 на странице
$query = new WP_Query( array( 'posts_per_page' => 3) );
- Пример отображения всех на странице
$query = new WP_Query( array( 'posts_per_page' => -1) );
Для этого параметра доступны другие варианты, которые подробно описаны в справочнике кодекса.
Как использовать WP_Query
Объект класса WP_Query создается при загрузке страницы в . В зависимости от URL-адреса запроса объект может быть настроен для доступа к сообщениям на основе таких критериев, как первые десять , сообщение с определенным заголовком, сообщения в категории и т.д.
Есть два основных сценария использования объекта WP_Query:
1. Определите тип запроса: используйте объект WPQuery, чтобы определить тип запроса для текущего запроса . Эта информация присутствует в свойствах объекта, названных как свойства $ is *, и может быть получена с помощью этих свойств. Этот подход обычно используется разработчиками плагинов, которые хотят добавить код для обработки типов запросов.
Здесь следует отметить, что свойства $ is_ * не используются напрямую в коде. Они используются с помощью
Примеры :
- is_home ()
Функция is_home () определяет, относится ли запрос к домашней странице блога. Используйте условный тег is_home (), чтобы отобразить что-нибудь на домашней странице блога.
Функция is_home () указывает, относится ли запрос к домашней странице блога. Эта функция возвращает True, если просмотр блога является домашней страницей, в противном случае – false. Внутренне использует функцию get_option () для получения значений определенных значений параметров и проверки, относится ли текущий запрос к домашней странице.
- is_page ()
Функция is_page () определяет, относится ли запрос к странице. У этой функции есть множество вариантов на выбор, вы можете посмотреть ссылку для более подробной информации.
2. Последовательный просмотр нескольких запросов: объект WP_Query предоставляет множество функций для общих задач, которые последовательно выполняются для нескольких . В
Эта функция have_posts () используется для проверки результатов текущего запроса . Если есть какие-либо результаты, которые нужно перебрать, функция возвращает ИСТИНА, иначе она возвращает ЛОЖЬ. Обычно вы должны использовать эту функцию, чтобы проверить, вернул ли ваш запрос ненулевое количество результатов.
$the_query->have_posts()
Используйте функцию the_post (), чтобы перебирать сообщения в цикле. Эта функция использует индекс для просмотра каждого сообщения в результатах запроса.
$the_query->the_post()
Эти две функции используются в цикле while для последовательного выполнения задач для каждой публикации в возвращаемых результатах.
<?php
Мы изучили основы WP_Query и узнали, как создавать и использовать объекты запроса. Теперь перейдем к несколько продвинутым функциям WP_Query.
Tax_query используется для выполнения запросов на основе таксономий. «Таксономия» – это механизм группировки , ссылок или настраиваемых типов . При создании таксономии создается специальная переменная tax_query с использованием класса WP_Query.
Tax_query принимает массив массивов аргументов налогового запроса. Вы можете запросить несколько таксономий, используя параметр отношения для описания логической связи между массивами таксономии.
Давайте посмотрим на простой пример отображения , помеченных термином “Изображение”, в настраиваемой таксономии “тип содержимого”:
$args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'content-type', 'field' => 'slug', 'terms' => 'Image', ), ), ); $query = new WP_Query( $args );
Если вы хотите узнать больше о том, как использовать сложные tax_queries, вы можете обратиться к справочнику WP_Query.
Функция the_excerpt () отображает
Эта функция не принимает никаких параметров и обрезает содержимое до 55 слов, а все теги HTML удаляются перед возвратом текста.
Пример использования the_excerpt ()
Функция the_title () отображает или возвращает заголовок текущего сообщения. Используйте эту функцию из и используйте
Эта функция принимает в качестве параметров текст, который нужно разместить до или после заголовка, а также то, должен ли заголовок отображаться или возвращаться для использования в PHP.
Пример использования the_title () для получения заголовка сообщения в формате «Заголовок 3».
<?php the_title( '<h3>', '</h3>', FALSE ); ?>
Функция get_pages () возвращает массив страниц в блоге. Функция также может получать другие типы с помощью параметра post_type.
Пример использования get_pages ()
<?php $args = array(
Функция the_category () отображает ссылку на категорию или категории, к которым принадлежит публикация. Эта функция также используется в
Функция принимает в качестве параметров идентификатор сообщения, для которого отображаются категории. Также требуется разделитель для категорий, а также для отображения одной или нескольких ссылок на дочерние категории.
Пример использования the_category () для категорий, разделенных запятой.
<?php the_category( ', ' ); ?>
Функция add_filter используются для
add_filter( 'post_limits', 'my_post_limits_function' );
Здесь функция my_post_limits_function определяется пользователем, и вы можете добавить свой код, чтобы изменить поведение предложения LIMIT запроса. Примером может быть добавление ограничения на количество результатов, возвращаемых в объекте WP_QUERY, в зависимости от того, является ли это поисковым запросом на странице поиска.
Для использования с WP_Query доступно еще много фильтров, которые можно использовать для изменения различных предложений запроса, возвращающего массив . Некоторые из них упомянуты ниже:
- posts_distinct
- posts_groupby
- posts_join
- post_limits
- posts_orderby
- posts_where
Функция add_action используется для привязки функции к определенному действию. Действия – это перехватчики, которые запускаются в определенные моменты во время выполнения или при возникновении определенных событий.
Объект WP_Query также поддерживает add_action (). С помощью хука действия ‘the_post’ вы можете изменить объект сообщения сразу после того, как он будет запрошен.
//define action_hook function my_the_post_action( $post_object) { // modify post object here } //register action_hook add_action( 'the_post', 'my_the_post_action' );
Хук pre_get_posts вызывается после создания объекта запроса, но до выполнения фактического запроса. Таким образом, вы можете использовать его для изменения запросов до их выполнения.
Вы можете обратиться к справочнику по кодексу для получения подробной информации о дополнительных действиях, поддерживаемых объектами WP_Query.
Функция get_posts () принимает идентификатор сообщения и возвращает данные сообщения из базы данных. Эта функция возвращает массив объектов WP_Post, где каждый объект представляет отдельную публикацию, которая может быть публикацией, страницей или произвольным типом сообщения.
Преимущество использования get_post () над WP_Query () заключается в том, что основной цикл не изменяется, чего нельзя сказать о WP_Query (). Внутренне функция get_posts () также использует объект WP_Query () для получения на основе переданных аргументов. Однако он гарантирует сброс основного , который вы можете забыть сделать, если используете WP_Query напрямую.
Вот небольшой пример использования функции get_posts ():
$args = array( "post_type" => "post" ); $posts_array = get_posts($args);
В этом случае мы получаем массив от вызова get_posts (). Если вы посмотрите ссылку на функцию в кодексе, есть еще много параметров, таких как posts_per_page, paged, tax_query и т.д.
Пользовательский тип сообщения get_posts
Вы также можете использовать функцию get_posts () для получения пользовательского типа post_type с пользовательским именем таксономии.
$args = array( 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'content-type', 'field' => 'slug', 'terms' => 'Image', ), ), ); $posts_array = get_posts($args);
get_posts wpml
Плагин Multilingual добавляет поддержку нескольких языков на страницах . Он также предоставляет функции, которые работают с классами WP_Query и WP_Post и предоставляют способ извлекать сообщения на определенных языках и управлять ими.
Функция get_posts () по умолчанию возвращает все сообщения для каждого языка. Чтобы вернуть только сообщения для текущего языка, вы можете использовать любой из двух подходов.
- Используйте suppress_filters: установите для параметра suppress_filters функции get_posts значение false. Это позволит функции get_posts () возвращать сообщения только на текущем языке.
$args = array( // add other arguments here 'suppress_filters' => false ); $posts_array = get_posts( $args );
- Функция query_posts: Другой предпочтительный вариант – возвращать сообщения с помощью функции query_posts ().. Он принимает в качестве параметра массив аргументов WP_Query и возвращает список объектов сообщения. Функция query_posts () изменяет основной запрос, который использует для отображения . Он заменяет основной запрос новым запросом. Поэтому необходимо вызвать wp_reset_query () после query_posts (), чтобы восстановить исходный основной запрос // создать массив аргументов с языком, установленным как en_us
$args = array( 'order' => 'ASC', 'lang' => 'en_us'); // use query_posts to retrieve posts in English. query_posts( $args );
Важно отметить, что использование этой функции для замены основного запроса на странице может увеличить время загрузки страницы. Это не рекомендуемый вариант, и он также может вызвать путаницу.
Есть и другие параметры, которые обычно используются с функциями query_posts (). Предел query_posts для возвращаемых можно установить с помощью параметра «posts_per_page». Если вы хотите вернуть сообщения с определенной страницы, вы также можете использовать параметр query_posts ‘paged’. Параметр смещения query_posts используется для указания количества , которые вы хотите пропустить перед тем, как начать список .
Сообщение WP_Query содержит дополнительную информацию, известную как метаданные. Эти метаданные могут включать в себя биты информации, такие как настроение, погода, местоположение и т.д.
Мета-данные хранятся в виде пар ключ / значение. Ключ – это имя элемента метаданных, а значение – это информация. Значение можно увидеть в списке метаданных любого сообщения, к которому привязана информация.
Существует несколько функций для метаданных
- get_post_meta
Функция get_post_meta извлекает мета-поле сообщения для сообщения.
get_post_meta($post_id, $key, $single);
Как видно выше, мы передаем в качестве аргументов идентификатор сообщения, мета-ключ и то, хотим ли мы получить единственный результат в виде строки или массива полей.
- meta_value
Функция meta_value позволяет получить запись с выбранным мета-ключом и мета-значением.
В качестве примера мы покажем, как фильтровать сообщения с meta_key, установленным как ‘show_on_firstpage’ и meta_value как ‘on’.
$rd_args = array( 'meta_key' => 'show_on_firstpage', 'meta_value' => 'on' ); $query = new WP_Query( $rd_args );
Класс WP_Meta_Query – это базовый класс, используемый для реализации мета-запросов для Meta API. Этот объект класса можно использовать для генерации предложений SQL для фильтрации первичного запроса по ключам и значениям метаданных. хранит три типа метаданных поста, мета пользователя и мета комментария. Вы можете рассматривать этот класс как помощник для основных классов запросов, таких как WP_Query, используемых для фильтрации их результатов по метаданным объекта.
Чтобы создать объект класса WP_Meta_Query, вы можете передать несколько аргументов в виде парного массива ключ => значение. Доступные ключи, которые эта функция принимает в качестве аргументов:
- meta_key
- meta_value
- meta_type
- meta_compare
Ниже приведен пример простого использования а для создания объекта класса WP_Meta_Query.
$meta_query_args = array( array( 'key' => 'custom_key', 'value' => 'custom_value' )); $meta_query = new WP_Meta_Query( $meta_query_args );
meta_query сравнить
Иногда вам может потребоваться сравнить значения, соответствующие ключам метаданных. Механизмом по умолчанию для сравнения meta_values является оператор ‘=’, который проверяет равенство. Если вы хотите выбрать из других вариантов, например ‘! = ‘,’> ‘,’ <‘и т. д., тогда вы можете использовать аргумент сравнения meta_query. Вы должны указать его как аргумент сравнения в массиве arguments.
Возможные значения: ‘=’, ‘! =’, ‘>’, ‘> =’, ‘<‘, ‘<=’, ‘LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘ BETWEEN ‘,’ NOT BETWEEN ‘,’ EXISTS ‘(только в WP> = 3.5) и’ NOT EXISTS ‘(также только в WP> = 3.5). Значения «REGEXP», «NOT REGEXP» и «RLIKE» были добавлены в 3.7.
$meta_query_args = array( array( 'key' => 'custom_key', 'value' => 'custom_value' 'compare' => 'EXISTS', )); $meta_query = new WP_Meta_Query( $meta_query_args );
Последние мысли
Разработчики имеют доступ к обширному списку функций для настройки своих тем. Мы составили список наиболее часто используемых функций запросов . Однако понятно, что обучение использованию этих функций вначале может занять много времени. Разработчики склонны искать варианты, которые просты в использовании и предоставляют им аналогичные функциональные возможности и гибкость. TemplateToaster, тем
Лучший интерфейс перетаскивания для создания потрясающих тем
Источник записи: