Как я могу поймать триггер ссылки, чтобы я мог передать параметр? - PullRequest
0 голосов
/ 13 июня 2019

Я работаю над сайтом клиента, и они хотят, чтобы он был двухязычным. Он основан на WordPress, и я покупаю плагин WPML. Теперь я хочу добавить кнопку переключения языка, но я не могу этого сделать, хотя все еще могу настраивать и вставлять ее в любое место, поэтому я нашел решение:

Страница отображается с содержанием, переведенным только тогда, когда URL-адрес соответствует параметру "? Lang = en", поэтому, если URL-адрес "www.website.com/page", он будет отображаться нормально, а если URL-адрес - "www.website". .com / page? lang = ru "его содержание будет на английском языке.

Я придумал решение сделать пользовательские кнопки переключения с помощью href по этой схеме. Однако, как только он выберет язык, который я хочу сохранить при просмотре веб-сайта.

Теперь, как я могу заставить веб-сайт работать таким образом, чтобы, если его текущая страница содержала "? Lang = en" в URL, когда он получал доступ к другой странице, чтобы передать этот параметр? До сих пор я мог проверить, содержит ли страница этот параметр, и теперь я не знаю, как его передать (я говорю об этом в javascript с помощью jquery).

1 Ответ

0 голосов
/ 13 июня 2019

Лучше всего было бы сохранить его в переменной сеанса, но поскольку вы спросили, вы можете проанализировать строку запроса, как показано ниже.Если у вас есть что-то после #, вы можете также отключить split() (queryStr = queryStr.split('#')[0];).

function parseQuery(url) {
    var queryStr = url ? url.split('?')[1] : location.search.slice(1),
        query = {};
    if (queryStr !== '') {
        var params = queryStr.split('&');
        for (var i = 0; i < params.length; i++) {
            var param = params[i].split('=');
            query[decodeURIComponent(param[0])] = decodeURIComponent(param[1] || '');
         }
    }        
    return query;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...