Intereting Posts
Как перенаправить wp_login_form на новую страницу после входа пользователя в систему? каков способ увидеть текущий исполняемый запрос в wordpress? Добавьте заголовок, сообщение и категорию, такие как add_post_meta и update_post_meta Как настроить панель администратора для приятеля? Как сделать переменную доступной для продолжительности запроса страницы Показывать только конкретное имя страницы и краткое резюме Какое изображение используется для миниатюр в списке Категория Post плагин Есть ли способ исключить содержимое из переменной post, чтобы сэкономить на использовании ОЗУ? ошибка установления соединения с базой данных Второй цикл WP_Query показывает данные из основного запроса Определите, вызван ли вызов the_post из списка сообщений администратора Запретить определенные виджеты с определенных боковых панелей Усечение последней активности в buddypress Фильтр get_user_by вместо функции замены Как остановить создание WordPress URL-адресов, которые не существуют

Понимание строки запроса после перезаписи .htaccess

Я понимаю, что WordPress .htaccess, как показано ниже:

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress 

отправляет все запросы через index.php (если имя файла не существует на сервере и т. д.).

Итак, если я перейду к http://example.com/checkout WordPress переписывает это как http://example.com/index.php?pagename=checkout .

Но я не понимаю, что у меня в верхней части шаблона страницы

 <?php print_r($_GET) ?> 

и когда я перейду к http://example.com/checkout который возвращает Array() . Я ожидал бы что-то вроде Array('pagename' => 'checkout') ;

Как я могу получить доступ к переменным, которые WordPress использует при обработке URL?

На самом деле это не переписывание URL в обычном смысле, синтаксический анализ URL происходит полностью в PHP.

Вы можете получить доступ к окнам запросов в глобальном $wp_query->query_vars или с get_query_var функции get_query_var .

Также обратите внимание, что parse_request – это самое раннее действие, когда эта информация будет доступна.

Он вызывает index.php , а не index.php?page=..

Я не уверен, как WordPress выполняет свою маршрутизацию, но вы можете использовать $_SERVER['PATH_INFO'] или $_SERVER['REQUEST_URI']

Не обманывайте себя именами. mod_rewrite Rewrite Rules и WordPress Rewrite Rules – это две разные вещи.

В .htaccess существуют правила mod_rewrite, которые не делают ничего, кроме запуска WP index.php для любых запросов, которые непосредственно не попадают в существующий файл или каталог.

Чтобы понять, что означает / checkout, WordPress затем опирается на свой собственный набор правил перезаписи, которые не имеют ничего общего с mod_rewrite, поэтому не путайте.

Часть $redirect WordPress $redirect выглядит так, будто она передает переменные через HTTP GET, но на самом деле это не так. Они будут использоваться как теги перезаписи. См. Документацию для add_rewrite_rule для нескольких примеров и дополнительных объяснений.