Шпаргалка по функциям WordPress: краткое и удобное руководство для разработчиков
Ищете быстрое и простое в использовании руководство по часто используемым функциям WordPress? Используйте эту удобную шпаргалку, чтобы улучшить свои навыки и эффективность в разработке плагинов и тем WordPress.
Большинство тем и плагинов WordPress ищут способы создания списков сообщений на основе нескольких условий и критериев. Вам часто нужно определить, что вам нужно на странице, и соответственно подтянуть сообщения. Вам также может потребоваться использовать другую информацию из запросов, если вы хотите создать оптимизированные страницы. База данных WordPress хранит все данные для сообщений, страниц, комментариев, категорий, тегов, настраиваемых полей, пользователей, URL-адресов сайтов и т.д. Если нам нужна дополнительная информация по ним, нам нужен способ извлечь ее из базы данных. Написание прямых SQL-запросов непросто и не рекомендуется. В этой шпаргалке мы в первую очередь рассматриваем функции WordPress, которые представляют собой простой и надежный способ работы с базой данных.
Функции, классы и многое другое WordPress
Функции WordPress предоставляют возможность создавать, изменять темы WordPress и добавлять дополнительные функции в плагины. Функции WordPress многочисленны и сложны. Это делает почти невозможным запоминание даже самых основных функций. Таким образом, вы, возможно, привыкли постоянно ссылаться на Справочник кодекса WordPress. Возможно, вы также пожелали, чтобы был быстрый и простой способ обойти широкий спектр функций и их возможностей. С помощью этой шпаргалки мы предлагаем вам список наиболее часто используемых функций WordPress. Шпаргалка поможет вам разобраться в сложностях функций WordPress и упростит программирование. Мы также показываем использование этих функций на примере кода PHP.
1. Класс WordPress WP_Query
WP_Query – это класс, описывающий запрос WordPress. Объект класса предоставляет подробную информацию о запросе, сделанном сообщением или страницей в блоге WordPress. Он используется для определения типа запроса, например датированного архива, ленты новостей, поиска и т.д., И, соответственно, получения сообщений.
Вы можете использовать его для определения запроса для страницы для фильтрации сообщений на странице. WP_Query не только извлекает определенные сообщения для страницы, но также предоставляет дополнительную информацию о них. Это безопасный, простой и модульный подход для отправки сложных запросов в базу данных.
Начнем с понимания того, как создавать объекты WP_Query. Мы опишем часто используемые функции WordPress для создания и использования ваших собственных объектов WP_Query.
Новая функция WordPress 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 можно ссылаться в более позднем коде, чтобы получить информацию, хранящуюся в ней.
WordPress определяет различные параметры, которые могут быть отправлены в качестве аргументов этой функции. Давайте рассмотрим некоторые из этих параметров и методы создания объектов 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
Параметр WordPress 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 создается при загрузке страницы в WordPress. В зависимости от URL-адреса запроса объект может быть настроен для доступа к сообщениям на основе таких критериев, как первые десять сообщений, сообщение с определенным заголовком, сообщения в категории и т.д.
Есть два основных сценария использования объекта WP_Query:
1. Определите тип запроса: используйте объект WPQuery, чтобы определить тип запроса для текущего запроса WordPress. Эта информация присутствует в свойствах объекта, названных как свойства $ is *, и может быть получена с помощью этих свойств. Этот подход обычно используется разработчиками плагинов, которые хотят добавить код для обработки типов запросов.
Здесь следует отметить, что свойства $ is_ * не используются напрямую в коде. Они используются с помощью условных тегов. Условные теги можно использовать для изменения отображаемого содержимого. Вы также можете определить, какой контент будет отображаться на определенной странице в зависимости от условий, которым она соответствует.
Примеры условных тегов:
- WordPress is_home ()
Функция is_home () определяет, относится ли запрос к домашней странице блога. Используйте условный тег is_home (), чтобы отобразить что-нибудь на домашней странице блога.
Функция WordPress is_home () указывает, относится ли запрос к домашней странице блога. Эта функция возвращает True, если просмотр блога является домашней страницей, в противном случае – false. Внутренне WordPress использует функцию get_option () для получения значений определенных значений параметров и проверки, относится ли текущий запрос к домашней странице.
- WordPress is_page ()
Функция is_page () определяет, относится ли запрос к странице. У этой функции есть множество вариантов на выбор, вы можете посмотреть ссылку для более подробной информации.
2. Последовательный просмотр нескольких запросов: объект WP_Query предоставляет множество функций для общих задач, которые последовательно выполняются для нескольких сообщений. В The Loop вы можете обрабатывать каждое сообщение, которое будет отображаться на текущей странице, и форматировать его на основе определенных критериев. Вы можете добавить в цикл HTML или PHP код, который нужно обрабатывать для каждого сообщения. Две основные функции WordPress, которые используются в цикле, – это функции have_posts () и the_post ().
2. Функция have_posts в WordPress
Эта функция have_posts () используется для проверки результатов текущего запроса WordPress. Если есть какие-либо результаты, которые нужно перебрать, функция возвращает ИСТИНА, иначе она возвращает ЛОЖЬ. Обычно вы должны использовать эту функцию, чтобы проверить, вернул ли ваш запрос ненулевое количество результатов.
$the_query->have_posts()
3. Функция WordPress the_post
Используйте функцию the_post (), чтобы перебирать сообщения в цикле. Эта функция использует индекс для просмотра каждого сообщения в результатах запроса.
$the_query->the_post()
Эти две функции используются в цикле while для последовательного выполнения задач для каждой публикации в возвращаемых результатах.
<?php
Мы изучили основы WP_Query и узнали, как создавать и использовать объекты запроса. Теперь перейдем к несколько продвинутым функциям WP_Query.
4. Функция tax_query WordPress
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.
5. WordPress the_excerpt
Функция WordPress the_excerpt () отображает отрывок из текущего сообщения. Он применяет несколько фильтров к отрывку, включая форматирование auto-p.
Эта функция не принимает никаких параметров и обрезает содержимое до 55 слов, а все теги HTML удаляются перед возвратом текста.
Пример использования the_excerpt ()
6. WordPress the_title
Функция WordPress the_title () отображает или возвращает заголовок текущего сообщения. Используйте эту функцию из цикла и используйте get_the_title, чтобы получить заголовок сообщения за пределами цикла.
Эта функция принимает в качестве параметров текст, который нужно разместить до или после заголовка, а также то, должен ли заголовок отображаться или возвращаться для использования в PHP.
Пример использования the_title () для получения заголовка сообщения в формате «Заголовок 3».
<?php the_title( '<h3>', '</h3>', FALSE ); ?>
7. WordPress get_pages
Функция WordPress get_pages () возвращает массив страниц в блоге. Функция также может получать другие типы сообщений с помощью параметра post_type.
Пример использования get_pages ()
<?php $args = array(
8. WordPress the_category
Функция WordPress the_category () отображает ссылку на категорию или категории, к которым принадлежит публикация. Эта функция также используется в The Loop.
Функция принимает в качестве параметров идентификатор сообщения, для которого отображаются категории. Также требуется разделитель для категорий, а также для отображения одной или нескольких ссылок на дочерние категории.
Пример использования the_category () для категорий, разделенных запятой.
<?php the_category( ', ' ); ?>
9. WordPress add_filter
Функция WordPress add_filter используются для крючок функции или методы к действию конкретного фильтра. Класс WP_Query поддерживает около 16 фильтров WordPress. Это фильтры, запускаемые объектом WP_Query при создании и выполнении запроса, который извлекает сообщения. Вы можете использовать функцию add_filter, чтобы добавить фильтр WP_Query для определенных действий запроса.
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
10. WordPress add_action
Функция WordPress 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 вызывается после создания объекта запроса, но до выполнения фактического запроса. Таким образом, вы можете использовать его для изменения запросов WordPress до их выполнения.
Вы можете обратиться к справочнику по кодексу для получения подробной информации о дополнительных действиях, поддерживаемых объектами WP_Query.
11. Функция WordPress get_posts
Функция WordPress 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 и т.д.
Пользовательский тип сообщения WordPress 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
Плагин WordPress Multilingual добавляет поддержку нескольких языков на страницах WordPress. Он также предоставляет функции, которые работают с классами WordPress 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 );
- Функция WordPress query_posts: Другой предпочтительный вариант – возвращать сообщения с помощью функции query_posts ().. Он принимает в качестве параметра массив аргументов WP_Query и возвращает список объектов сообщения. Функция query_posts () изменяет основной запрос, который WordPress использует для отображения сообщений. Он заменяет основной запрос новым запросом. Поэтому необходимо вызвать 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 (). Предел WordPress query_posts для возвращаемых сообщений можно установить с помощью параметра «posts_per_page». Если вы хотите вернуть сообщения с определенной страницы, вы также можете использовать параметр query_posts ‘paged’. Параметр смещения WordPress query_posts используется для указания количества сообщений, которые вы хотите пропустить перед тем, как начать список сообщений.
12. WP_Query post meta
Сообщение WP_Query содержит дополнительную информацию, известную как метаданные. Эти метаданные могут включать в себя биты информации, такие как настроение, погода, местоположение и т.д.
Мета-данные хранятся в виде пар ключ / значение. Ключ – это имя элемента метаданных, а значение – это информация. Значение можно увидеть в списке метаданных любого сообщения, к которому привязана информация.
Существует несколько функций WordPress для метаданных сообщений WP_Query для добавления, удаления и получения метаинформации.
- WordPress get_post_meta
Функция get_post_meta извлекает мета-поле сообщения для сообщения.
get_post_meta($post_id, $key, $single);
Как видно выше, мы передаем в качестве аргументов идентификатор сообщения, мета-ключ и то, хотим ли мы получить единственный результат в виде строки или массива полей.
- meta_value WordPress
Функция WordPress 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 );
13. Класс WordPress WP_Meta_Query
Класс WP_Meta_Query – это базовый класс, используемый для реализации мета-запросов для Meta API. Этот объект класса можно использовать для генерации предложений SQL для фильтрации первичного запроса по ключам и значениям метаданных. WordPress хранит три типа метаданных поста, мета пользователя и мета комментария. Вы можете рассматривать этот класс как помощник для основных классов запросов, таких как 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 );
WordPress 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» были добавлены в WordPress 3.7.
$meta_query_args = array(
array(
'key' => 'custom_key',
'value' => 'custom_value'
'compare' => 'EXISTS',
));
$meta_query = new WP_Meta_Query( $meta_query_args );
Последние мысли
Разработчики WordPress имеют доступ к обширному списку функций WordPress для настройки своих тем. Мы составили список наиболее часто используемых функций запросов WordPress. Однако понятно, что обучение использованию этих функций вначале может занять много времени. Разработчики склонны искать варианты, которые просты в использовании и предоставляют им аналогичные функциональные возможности и гибкость. TemplateToaster, конструктор тем WordPress и конструктор сайтов WordPressявляется одним из таких инструментов с расширенными функциями и функциями для создания тем WordPress, значительно упрощающих работу по разработке. Инструмент представляет собой комплексное программное обеспечение для веб-дизайна, которое обеспечивает поддержку всех плагинов WordPress и настраиваемых тем. С помощью этого инструмента вам не нужно будет углубляться в детали функций WordPress и вы сможете напрямую использовать темы из обширной коллекции, которую предлагает TemplateToaster.
Лучший интерфейс перетаскивания для создания потрясающих тем WordPress
Источник записи: https://blog.templatetoaster.com