Intereting Posts
Относительные ссылки перестают работать после перемещения сайта wordpress с хостинга на localhost Как показать пользовательский тип сообщения на домашней странице и в категориях Невозможно получить данные с нескольких веб-сайтов WordPress на одном сервере Лучший способ прервать плагин в случае недостаточной версии PHP? Как включить новые электронные письма с уведомлением об учетной записи (администратору)? Удалить пункты меню со страницы администратора и ограничить возможности Ошибка при использовании succesfull wp_remote_post Следующий вызов Ajax не работает Визуальный Composer shortcode для детской темы dir Изменение позиции носителя в меню администратора загрузка javascript CDN с локальным резервным (не jQuery) «Is_new_day ()» альтернатива в течение многих лет? (Кто последует) Twitter-виджет не может остановить cron и / или что-то еще вызывает отключенную wp-cron.php Получить данные из третьей таблицы

переписать правила и зафиксировать

У меня есть то, что я думаю, должно быть очень простой проблемой. Но по какой-то причине я не могу взломать ее.

Я хочу, чтобы все, что было показано на текущей странице, было направлено в качестве запроса на эту страницу. Так

example.com/mypage/this/that/other

example.com/mypage/this/that

example.com/mypage/this

должны все привести к

example.com/mypage с запросом cpath = / this / that / other (или что-то подобное)

Есть предположения? Использование стандартных ссылок не привело ни к чему, кроме 404 страниц

Благодаря,

Вы можете добавить правило перезаписи. Правила перезаписи – это регулярные выражения, которые WP использует для анализа запроса из дружественных URL-адресов. Но я думаю, что это может испортить ситуацию . Как WP различает /this-is-a-page/this-is-a-child-page/ и /this-is-a-page/this-is-a-parameter/ ?

Лучшим вариантом, я думаю, было бы parse_request действие parse_request . Это вызвано после того, как WP загружает то, что, по его мнению, является vars запросов, но прежде чем он сделает запрос (и поэтому до того, как он решит, что запрос должен быть «не найден».) Этот крюк действия передает объект WP в вашу функцию по ссылке.

 add_action("parse_request", "my_parse_request"); /** * @param WP $wp */ function my_parse_request(&$wp){ echo "<pre>"; var_dump($wp->query_vars); die(); } 

Для существующей страницы server.loc/sample-page/ эти выходы:

 array(2) { ["page"]=> string(0) "" ["pagename"]=> string(11) "sample-page" } 

Добавление параметров … server.loc/sample-page/parameter-1/parameter-2/

 array(2) { ["page"]=> string(0) "" ["pagename"]=> string(35) "sample-page/parameter-1/parameter-2" } 

Поскольку $wp передается по ссылке, вы можете напрямую изменить $wp->query_vars , проверив, какие части page_name являются фактически страницами и сохраняют ваши параметры для использования позже.

Обратите внимание, что page в $wp->query_vars относится к номеру страницы, если таковая имеется. Все, что вам нужно прикоснуться, это pagename .

Код, из которого parse_request находится в wp-includes/class-wp.php .