Если я правильно понял, вы просто хотите добавить перезагрузку после нажатия на одно из ваших ключевых слов.
Вы не уточнили, хотите ли вы сделать это только в PHP,поэтому я даю вам решение только для JavaScript.
/** {string} URL queries in string */
let urlQueriesString = window.location.search,
/** {string[]} URL queries in array */
urlQueriesArray = urlQueriesString.substring(1).split('&'),
/** {Object.<string, string>} URL queries in object */
urlQueries = {},
/** {string[]} List of search keywords */
searchKeywords = [],
/** {HTMLElement[]} List of <li> which will be inserted into DOM */
liElements;
// Fills in urlQueries object
for (let i in urlQueriesArray) {
urlQueriesArray[i] = urlQueriesArray[i].split('=');
urlQueries[urlQueriesArray[i][0]] = urlQueriesArray[i][1];
}
// Gets search keywords from _sft_category parameter
searchKeywords = urlQueries._sft_category.split('+'); // or .split(' ')
// Inserts a <li> in the DOM for each keyword
for (let i in searchKeywords) {
let ul = document.getElementsByTagName('ul')[0],
html = `<li>${searchKeywords[i]}</li>`;
ul.innerHTML += html;
}
// Gets inserted <li>
liElements = document.getElementsByTagName('li');
// Adds an event on click for each <li>
for (let i in liElements) {
let li = liElements[i];
// Checks instance type because last element of liElements is the length and we don't want to do what's following for this one
if (li instanceof HTMLElement) {
// Creates new URL on click
li.addEventListener('click', function() {
let url = window.location.hostname + window.location.pathname,
keyword = this.innerText;
searchKeywords = searchKeywords.filter((kw) => (kw !== keyword));
url += urlQueriesString.replace(/_sft_category=[\w\d_+-]+/, `_sft_category=${searchKeywords.join('+')}`);
console.log(url);
// Uncomment next line for reload with new url
// window.location.href = url;
});
}
}
<ul></ul>
Этот фрагмент кода может быть упрощен, но в настоящее время он должен работать.
Возможно, вам придется немного его адаптировать, чтобыэто для работы с вашим проектом.