Задать вопрос
@NkDev

Как в wordpress перехватить get запрос?

Допустим у меня на сайте есть страница mysite.com/sitemap. Я хочу перехватить этот url и запускать свой самописный скрипт. Скажите как это делается? С помощью какой функции или хука и где его размещать?

Спасибо!
  • Вопрос задан
  • 611 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
irtek
@irtek
Wordpress-addicted
1. Грубый метод
Создать папку sitemap в корне и создать там index.php
Если нужны функции WordPress и доступ к базе, то включить в файл основной файл загрузки WP

require '../wp-load.php';

2. Если нужно прямо в WordPress
Скрипт нужно повесить на хук "init", который происходит до передачи заголовков страницы.
Данный код добавить в functions.php темы

add_action( 'init', 'qna_habr_q_971257' );

function qna_habr_q_971257() {

	global $wp;

	// Получить базовый url
	$current_url = home_url();

	// Получить текущий url
	$current_url = $current_url . $_SERVER['REDIRECT_URL'];

	// Получить ID поста/страницы
	$id = url_to_postid( $current_url );

  // Получить массив get запроса
	print_r( $_GET );


	// Здесь ваш скрипт... //


	// Завершить функцию выходом если не хотите продолжать загружать страницу
	wp_die();

}


Для условия определения страницы, на которой находимся я привёл пример нескольких функций. Вы можете определить по данным из глобального $_SERVER, можете воспользоваться определением ID страницы по url и определять по ID на какой странице находитесь. Но учтите, что is_page() функция на данном этапе загрузки еще не работает.

И завершить функцию можно выходом wp_die(); если вам не нужно продолжение загрузки страницы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы