- 22, Oct 2024
- #1
Были заданы варианты этого вопроса, однако сценарии не совпадают с моими, и, несмотря на все мои усилия, мне не удалось применить предыдущие ответы к рабочему решению в моем варианте использования.
У меня есть шаблон страницы, в который встроено приложение JavaScript. Это приложение использует последний параметр URL-адреса в качестве параметра для запроса ajax, который он запускает и затем выдает результаты.
Из-за проблем с SEO и требований клиента я не могу изменить или изменить способ функционирования синтаксиса этого запроса, поэтому я должен заставить его работать в Wordpress (страница преобразуется из приложения Ruby).
Когда клиент обращается с просьбой:
// Disable redirect_canonical() add_action( 'init', 'results_tweaks' ); function results_tweaks() { remove_action( 'template_redirect', 'redirect_canonical' ); }
Мне нужно ответить страницей, созданной с использованием шаблона по адресу:
https://www.wordpresssite.com/service/results
В этой части я работаю со следующим правилом перезаписи в RewriteRule ^service/testing-tool/([a-z0-9.]+)$ /index.php?pagename=service/results [NC,L]
.htaccess
Перезапись работает, однако WordPress меняет URL-адрес в браузере на
https://www.wordpresssite.com/service/results
Это приводит к сбою JS, поскольку параметр домена отсутствует, а также не соответствует ранее упомянутым требованиям.
После некоторых исследований я понял, что проблема в действии redirect_canonical(), поэтому я попытался удалить его из шаблона:
https://www.wordpresssite.com/service/testing-tool/domain.com
Однако, похоже, этого не происходит. Читая документацию WP, я подозреваю, что это связано с тем, что действие уже обработано к моменту загрузки страницы.
Есть ли другой способ переопределить это действие специально для этого шаблона, а не для других? Возможно, есть другой способ, кроме удаления действия?
#переписывание URL-адресов #шаблон-страницы