is_trackback() WP 1.5.0
Проверяет, является ли текущий запрос запросом на страницу пингов (trackback)
За обработку запроса тракбэков отвечает файл wp-trackback.php.
Когда может пригодится?
Проверять запрос может пригодится, когда например вы подключаетесь к основному запросу и вам нужно сделать в нем какие-то изменения, только для пингов пришедших с других сайтов.
Задача крайне редкая, поэтому этот условный тег можно отнести к редко используемым.
Как это работает?
Когда вы пишите контент для записи и вставляете туда ссылки, WordPress пытается уведомить сайты (домены внешних ссылок) что вы на них ссылаетесь. Такое уведомление называется:
- Трэкбэком или Пингбэком для того кто получает это уведомление.
- Пингом для того кто отправляет это уведомление.
В этом случае WordPress, на котором публикуется запись с ссылками, отправляет POST запрос в файл wp-trackback.php. Там подгружается ядро WordPress и в основной запрос устанавливается параметр tb=1
require_once( dirname( __FILE__ ) . '/wp-load.php' ); wp( [ 'tb' => '1' ] );
Параметр tb устанавливает свойство WP_Query::is_trackback = true - это означает, что сработает условный тег is_trackback(), что в свою очередь означает, что это запрос трэкбэка (пингбэка). Далее, проверяются переданные POST данные и если все с ними в порядке, в таблицу комментариев добавляется пинг, сообщающий вам что на вашу статью сослались. Тип комментария в БД при этом указывается как pingback
: comment_type = pingback.
Управлять отправкой и получением пингов можно в настройках обсуждения:

Читайте также: Как работают уведомления (пинги) в WordPress
Хуков нет.
Возвращает
true/false
Использование
if( is_trackback() ){ // запрос пинга }
Заметки
- Global. WP_Query. $wp_query WordPress Query object.
Список изменений
С версии 1.5.0 | Введена. |
Код is_trackback() is trackback WP 5.6
function is_trackback() {
global $wp_query;
if ( ! isset( $wp_query ) ) {
_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1.0' );
return false;
}
return $wp_query->is_trackback();
}Cвязанные функции
Из метки: Условные теги (типов страниц и запросов)
- is_404()
- is_admin()
- is_archive()
- is_attachment()
- is_author()
- is_blog_admin()
- is_category()
- is_comment_feed()
- is_customize_preview()
- is_date()
- is_day()
- is_embed()
Еще из метки: Условные теги (все)
- cat_is_ancestor_of()
- comments_open()
- email_exists()
- has_block()
- has_category()
- has_custom_header()
- has_excerpt()
- has_nav_menu()
- has_post_thumbnail()
- has_shortcode()
- has_tag()
- has_term()
- have_comments()
- have_posts()
- in_category()
- in_the_loop()
Еще из раздела: Комментарии
- cancel_comment_reply_link()
- comment_author_email_link()
- comment_form()
- comment_form_title()
- comment_id_fields()
- comment_text()
- comment_type()
- comments_link()
- comments_popup_link()
- get_avatar()
- get_avatar_data()
- get_avatar_url()
- get_cancel_comment_reply_link()
- get_comment()
- get_comment_author_email()
- get_comment_pages_count()
- get_comment_reply_link()
- get_comment_text()
- get_comment_type()
- get_comments()
- get_comments_link()
- get_comments_number()
- get_comments_pagenum_link()
- get_edit_comment_link()
- get_next_comments_link()
- get_page_of_comment()
- get_previous_comments_link()
- get_the_comments_navigation()
- get_the_comments_pagination()
- next_comments_link()
- paginate_comments_links()
- previous_comments_link()
- sanitize_comment_cookies()
- the_comments_navigation()
- the_comments_pagination()
- wp_allow_comment()
- wp_count_comments()
- wp_delete_comment()
- wp_get_current_commenter()
- wp_handle_comment_submission()
- wp_insert_comment()
- wp_list_comments()
- wp_new_comment()
- wp_notify_moderator()
- wp_notify_postauthor()
- wp_set_comment_cookies()
- wp_set_comment_status()
- wp_spam_comment()
- wp_transition_comment_status()
- wp_update_comment()
- wp_update_comment_count()