Как добавить в WordPress строку запроса к URL-адресам в меню в зависимости от условия? - PullRequest
0 голосов
/ 03 июня 2019

Я создаю решение для кэширования на сайте WooCommerce с несколькими валютами. Проблема заключается в том, что после кэширования страницы будет отображаться версия валюты, которая была кэширована. Я пытаюсь решить эту проблему, добавив строку запроса? Wmc-currency = EUR или? Wmc-currency = USD, это работает. Я поместил перенаправление в htaccess, чтобы при попытке доступа к странице без строки запроса она перенаправляла вас на страницу со строкой запроса на основе файлов cookie. Но когда я нажимаю, скажем, / offer / и cookie установлен, сервер будет обслуживать кэшированную версию страницы, которая не имеет строки запроса. Я знаю, странно. Итак, вместо того, чтобы искать решение для кэширования сервера, я скорее генерирую ссылки, которые уже содержат строку запроса, и затем будет предоставлена ​​правильная кэшированная версия. Есть ли способ создать фильтр или функцию, которая может изменить URL в меню? Или было бы проще иметь 2 разных меню и переключаться между ними? Спасибо за любое предложение!

Я нашел много возможных способов сделать это, но ничего не нашел.

Перенаправление, которое я использую для строки запроса

<IfModule LiteSpeed>
RewriteEngine on
CacheLookup on

### add EUR query string ###
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_COOKIE} wmc_current_currency=EUR
RewriteCond %{REQUEST_URI} (^/$) [NC,OR]
RewriteCond %{REQUEST_URI} (produkt) [NC]
RewriteRule ^(.*)$ https://eshop.eu/$1?wmc-currency=EUR [L,NE,R=301]

### add USD query string ###
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_COOKIE} wmc_current_currency=USD
RewriteCond %{REQUEST_URI} (^/$) [NC,OR]
RewriteCond %{REQUEST_URI} (produkt) [NC]
RewriteRule ^(.*)$ https://eshop.eu/$1?wmc-currency=USD [L,NE,R=301]

</IfModule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...