SEO without Category
N месяцев тому назад наткнулся на замечательный плагин для “WorPress”, позволяющий убрать слово category из permalink-ов, генерируемых движком для рубрик. Одно не давало покоя до сегодняшнего дня - не все ссылки работали с установленным плагином. Так, например, ссылки постраничных переходов внутри категории вели на 404 страницу. Сегодня, после Починки… Обновления… решил таки победить эту напасть, что оказалось довольно просто.
Доработал этот небольшой скрипт так, что бы он не только менять ссылки, генерируемые WordPress-ом для рубрик, но и добавлял один шаблон так называемого “Rewrite Rule” - правила трансляции, используемого для преобразования пермалинка к внутреннему формату.
function seo_wo_category_rewrite_rules_filter($catlinks) {
return array_merge(array("(.+?)/page/([0-9]+)?/?$" => "index.php?category_name=\$matches[1]&paged=\$matches[2]"), $catlinks);
}
add_filter('rewrite_rules_array', 'seo_wo_category_rewrite_rules_filter', 1, 1);
Вот, впринципе и все. Нужно только удалить настройку из БД, что бы WordPress перегенерировал правила трансляции заново, с учетом добавленного фильтра.
update wp_options set option_value="" where option_name="rewrite_rules";
Выкладываю измененный исходник, который достаточно скачать, убрав расширение .txt ну и дальше идти тем же путем.
Изменен

Дмитрий заявил:
Добавлено 4 августа, 2007 в 16:23Спасибо большое! Сайт автора плагина не работал скачал ваше дополнение
хочу от себя добавить для тех кто не разбирается - нужно сохранить плагин как (напр seo-without-category.php) и переписать в wp-content/plugins/ далее идем во вкладку плагины и нажимаем активировать
Дмитрий заявил:
Добавлено 4 августа, 2007 в 22:11Еще кстати там нехватает строки
$catlink1=$catlink1.”/”;
итого полный скрипт получится таким
Contributor: Sergei Volkov aka Volkman
Author URI: http://megalith.ru/
Version: 1.0
*/
function seo_wo_category_category_link($catlink1) {
$catlink1 = str_replace(’/category’, ”, $catlink1);
$catlink1=$catlink1.”/”;
return $catlink1;
}
function seo_wo_category_rewrite_rules_filter($catlinks) {
return array_merge(array(”(. ?)/page/([0-9] )?/?$” => “index.php?category_name=\$matches[1]&paged=\$matches[2]”), $catlinks);
}
add_filter(’category_link’, ’seo_wo_category_category_link’, 1, 1);
add_filter(’rewrite_rules_array’, ’seo_wo_category_rewrite_rules_filter’, 1, 1);
?>
lucker (чел в теме) заявил:
Добавлено 5 августа, 2007 в 16:43А это зачем?
Павел заявил:
Добавлено 11 января, 2009 в 17:34Спасибо за столь эффективное решение задачи. Может кто не знает,
update wp_options set option_value="" where option_name="rewrite_rules";это SQL запрос и обрабатывается он в разделе Run SQL Query админ панели WP.Я со своей трудностью с БД. Архив рубрик работает прекрасно, постраничная разбивка также присутствует и работает. Но! Ссылки постраничных переходов внутри месячного архива и архива меток ведут на 404 страницу. Побывал различные шаблоны, в т.ч. заточенные под WP 2.7 - та же ошибка.
Гы заявил:
Добавлено 19 февраля, 2009 в 21:40Похоже эта штуковина работает только с категориями верхнего уровня. Вложенные категории не понимает. Короче в музей ее
Владимир заявил:
Добавлено 21 апреля, 2010 в 14:44Спасибо, давно мучился с этой проблемой, Ваше решение подошло.
Puhtya заявил:
Добавлено 6 мая, 2010 в 10:13Наверное тупой вопрос, но как удалить настройки из БД, чтобы WordPress перегенерировал правила трансляции заново?
Артем Миронов заявил:
Добавлено 24 августа, 2010 в 12:35Автор, подскажите, пожалуйста, а как вернуть назад изменения в базе данных после прописки sql запроса?????
wp-page navi я решил больше не использовать, вернул в первоначальное состояние seo-without-category, НО не знаю - стоит ли еще что-то изменить/восстановить в БД и КАК это сделать!?
OherF заявил:
Добавлено 21 февраля, 2011 в 13:03ОООоо!!! Огромное спасибо за подсказку! Все помогло и все работает как нужно!