Добрый день!
1. Есть сайт на WordPress, в котором вывод новостей определенной категории реализован не как полагается через отдельный урл вида www.goodsite.com/category/category-name, а на общей странице www.mysite.com/news (то есть все новости полностью и новости любой категории выводятся на одной странице (с одним и тем же урлом). Сделано это при помощи кнопок с именами категорий, на которые повешен jQuery. Если интересно, ниже код, который это реализует, но суть не в нем.
function() {
$(".blog .nav-item").removeClass("this-item"), $(this).addClass("this-item");
var s = $(this).attr("data-news");
$(".block-news").removeClass("block-news_show"), $(".block-news" + s).addClass("block-news_show")
}
2. В каждой отдельной новости есть ссылка на список новостей той категории, к которой относится данная новость. Так как мы помним, что новости категории выводятся jQuery на самой странице www.mysite.com/news (файлом news.php), то эта ссылка реализована по-особенному:
<?=
ot_get_option('footer_link6') // это ссылка на mysite.com/news/
. '?cats='
. $number // это айдишник категории
?>
В результате генерится ссылка вида mysite.com/news/?cats=3, где 3 это айди категории
3. В файле news.php эта ссылка обрабатывается так:
<?php if(isset($_GET['cats'])) { ?>
<?php if( ($_GET['cats'] == 3) ) { ?>
Если проверка срабатывает запускается JS-код,
function a() {
$('.nav-item3').click();
}
setTimeout(a, 0.3);
который, если я не ошибаюсь, жмет на кнопку, на которую, как мы помним из пункта 1, повешен другой JS-код, который оставляет на странице mysite.com/news/ только новости нужной (выбранной) категории.
Более полная версия:
<script>
$(document).ready(function() {
$('.header a').css('color', '#171717');
$('.header .this-nav a').css('color', 'white');
$('.header').css('background', 'white');
$('.header-nav_list .current_page_item').addClass('this-nav');
$('.bread').find('span').addClass('mobile-hidden');
$('.bread .current').removeClass('mobile-hidden');
var button_lang = localStorage.getItem('switch_lang');
if(button_lang == 'en') {
$('.mc_signup_submit input').attr('value','Subscribe');
} else {
$('.mc_signup_submit input').attr('value','Подписка');
}
<?php if(isset($_GET['cats'])) { ?>
<?php if( ($_GET['cats'] == 3) ) { ?>
function a() {
$('.nav-item3').click();
}
setTimeout(a, 0.3);
Вопросы:
1. Можно ли заменить ссылку вида mysite.com/news/?cats=3 на ссылку вида mysite.com/news/category-name. Ну то есть заменить-то можно, но как настроить ее прием, если GET-ом уже не воспользуешься? Разрезать урл по слешам? Может быть можно задать ссылке mysite.com/news/?cats=3 "псевдоним" (такое понятие "псевдоним ссылки" вообще существует?)
2 вопрос философский. Насколько и чем вредна такая нестандартная реализация вывода записей категории? Может, лучше запилить отдельные странички под каждую категории, как изначально и задумано в WP?
Исходный вопрос:
Есть сайт на WP, на нем раздел Новости. Сами новости, расположенные в Новостях принадлежат одной из трех категорий. В теле каждой отдельной новости есть ссылка на список всех новостей той же категории, что и эта новость. Ссылка вида: mysite.com/news/?cats=3. Когда эта ссылка принимается, то 3 вытаскивается GET-ом, и дальше обрабатывается.
Я поменял ссылки mysite.com/news/?cats=3 на mysite.com/news/category-name. Как мне теперь настроить прием этих ссылок, учитывая, что GET я теперь использовать не могу?
Или нужно было не трогать ссылку и как-то настроить .htaccess, чтобы ссылка просто отображалась красиво, а логика осталась прежней?