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 .

Керувати відправкою та отриманням пінгів можна у налаштуваннях обговорення:

Управління налаштуваннями обговорення пінг
Працює на основі:
WP_Query::is_trackback()
1 раз – 0.000027 сек
(дуже швидко) | 50000 разів – 0.01 сек
(швидкість світла) |
PHP 7.1.2, WP 4.7.3

Хуків немає.

Повертає

true|false. true/false

Використання

if( is_trackback() ){
	// запит пінгу
}

Приклади

0

#1 Встановимо HTTP заголовок відповіді для trackback запиту

add_action( 'template_redirect', function(){

	if( is_trackback() ){
		header( 'X-Disabled-Reason: trackback');
	}

} );

нотатки

  • Global. WP_Query. $wp_query WordPress Query object.

список змін

З версії 1.5.0Введено.

Код is_trackback() WP 6.0.2

function is_trackback() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags до роботи не працює, тому що керує. Before then, they always return false.' ), '3.1.0' );
		return false;
	}

	return $wp_query->is_trackback();
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *