Сделал через localStorage, мне показалось наиболее удобным и легким решением. Привожу свой код:
$('.js-post-filter').on('click',function(e){
e.preventDefault();
var curFilter = $(this).data('filter'),
guidesPage = site_url+"/guides";
localStorage.setItem("singleFilter",curFilter);
window.location.href = guidesPage;
});
$(window).on('load',function () {
var singleFilter = localStorage.getItem("singleFilter");
if (singleFilter !== null){
tags.each(function () {
if($(this).data('filter') === singleFilter) {
$(this).trigger('click');
}
});
localStorage.clear();
}
});
js-post-filter
- кнопка фильтра на странице single-guides.php, при нажатии берем значение её data атрибута(это значение фильтра по которому происходит сортировка).
site_url+"/guides"
- урл сайта + название страницы в адресной строке на которую нужно передать значение.
localStorage.setItem("singleFilter",curFilter);
- передаем значение на другую страницу под названием
singleFilter
.
window.location.href = guidesPage;
- делаем перенаправление на нужную страницу.
В моем случае понадобилось событие
onload
так как по другому не успевало подхватится переданное значение.
Дальше в переменную
singleFilter
записываем переданное значение и проверяем есть ли оно вообще (проверка null).
tags
- наши кнопки фильтра на странице guides.php. Проходимся по ним циклом и ищем есть ли там совпадение с переданным значением, если есть делаем событие клик по совпавшей кнопке.
localStorage.clear();
- очищаем localStorage.