Как удалить category из ссылок категорий блога
При формировании ссылки для категорий в wordpress используется такая настройка как category slug (или category base). Вы можете ее найти в меню админки «Параметры» – «Постоянные ссылки» (Permalink). Здесь, кстати, также задаются значения для формирования ссылок отдельных статей, ну и есть аналогичный категориям параметр slug для тегов.

Для постов в своих блогах я выбираю конструкцию /%category%/%postname%/, которая выводит название категории, а после нее url конкретной статьи. Например ссылка для страницы плагин TinyMCE Advanced имеет вид: wordpressinside.ru/plugins/tinymce-advanced/. Здесь можно проследить структуру проекта, и узнать какому разделу принадлежит статья. Когда в блоге есть подкатегории, то сначала выводится родительская, потом текущая, что вполне логично. При этом ссылки для самих категорий выглядят по типу: wordpressinside.ru/category/plugins/. С одной стороны, текст category указывает на то, что эта страница есть одним из разделов блога, но с другой, учитывая, предыдущий пример и архитектуру сайта можно было просто выводить название сайта и категории без промежуточного текста.
В принципе, в этом вопросе нет однозначного мнения – каждый для себя должен решить нужен ли ему такой подход или можно оставить все по умолчанию. Лично я не вижу принципиально отличия в данном случае. Да, Google рекомендует делать ссылки как можно короче и убирать из них ненужные элементы, но слово «category» не так уже сильно удлиняет url. Возможно, убрать один уровень для линка понадобиться людям, которые продают ссылки в той же Sape.
Учитывая тот факт, что мои блоги существуют достаточно давно, менять структуру ссылок я там не хочу. А тут как раз занялся созданием блога о typo3 и решил попробовать метод исключения слова category из ссылки. Хак для данного перевоплощения находил давно, но на практике все оказалось немного сложнее. На одном из англоязычных блогов нашел специальную настройку для файла .htaccess, в который нужно добавить строку
RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]
Не забудьте поменять ссылку yourblog.com на свою. В комментариях к этому посту многие пользователи написали, что данная правка ни на что не повлияла. Собственно, я столкнулся с такой же проблемой – category все еще выводилась для ссылок разделов.
Нашел еще 2-3 различных вариации с функциями, правками файлов исходника, но все они не особо внушали доверия – во-первых, в комментариях часто говорили, что ничего не получается, во-вторых, правка исходиков системы wordpress, да и еще нескольких файлов – мягко говоря, не лучшее решение. Поэтому единственным «нормальным» вариантом оказался плагин WP No Category Base.
Главная функция плагина – удаление Category Base из URL`а разделов. Причем плагин не требует никакой дополнительной настройки или модификаций ихсодных файлов системы вордпресс, а также не создает битых ссылок. Также он самостоятельно разбирается с редиректом старых ссылок категорий на новые (301 редирект, хорош для seo). Вообще нужно заметить, что это не единственный плагин, но некоторые решения требовали установки нескольких (!) модулей – что, конечно, полностью неприемлемо. Короче говоря у WP No Category Base одни плюсы:
- Делает урлы красивее.
- Плагин предельно прост – выполняет всю работу самостоятельно.
- Работает «из коробки» без всяких настроек.
- Нет необходимости править исходные файлы wordpress.
- Не требует других плагино для работы.
- Совместим с модулями карты сайтов.
- Работает с подкатегориями.
- Ну и занимается редиректом старых урлов на новые.
Про установку писать нечего – скачали, разархивировали, залили на ФТП блога и активировали. Единственный вопрос, который может возникнуть, нужно ли вам ставить дополнительный плагин чтобы убрать category из ссылок категорий блога. Честно говоря, я пока для себя не решил – если бы все делалось простой правкой .htaccess я бы, скорее всего, этим занимался, но тут ставить еще один плагин, который грузит блог еще больше. Хотя с другой стороны плагин вроде как не сложный, а ссылки для сателлитов и блогов получаются красивее:) Потеструю пока что WP No Category Base на TYPO3 блога, а там буду решать с ним делать дальше.
Update: По поводу символа точки «.» в качестве «префикса для рубрик» – многие говорят, что если указать его в соответствующем поле, то слово category не будет отображаться. И это действительно так. Но когда вы посмотрите XML карту сайта sitemap.xml, то обнаружите, что точка там остается и ссылки получаются не очень хорошие.
А вы убираете category из ссылок категорий блога? Каким образом?
P.S. Постовой. Хотите скачать бесплатные обои для рабочего – заходите на наш сайт!
Возможно также вам интересна аренда теплохода Киев – скоро ведь лето:)
Комментариев - 37 к статье “Как удалить category из ссылок категорий блога”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Плагин WP-PostRatings рейтинга постов в WordPress
- Оптимизируем WordPress header и удаляем лишние элементы
- Кэширование в wordpress – выбираем лучший плагин для кэширования
- SEO оптимизация WordPress блога (+видео)
- Увеличиваем memory_limit для wordpress
- Плагины кэширования Hyper Cache + DB Cache Reloaded Fix для wordpress
- Плагин WP-Optimize – оптимизация базы данных
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Шопинг в Европе и требуемые документы
- Последняя версия Google Chrome вышла с ошибкой
- Порядка 70 процентов не доводят покупки в сети Интернет до конца
- Рекламу в социальных сетях автоматизирует сервис AdCenter
- Тестирование новой разработки Интернет-агентства Registratura.ru
- Internet Explorer набирает рост
- Надежность покупок в интернет магазинах

Оцените статью: 
Категории:
Теги:
Не знаю, у меня как-то без-плагинов все получилось :)
Просто убрал слово categories, и ссылки все равно работают:
inspired.com.ua/logotypes
inspired.com.ua/category/logotypes
blogoreader, тут немного не то – ты убрал вручную – в таком случае все будет работать без проблем, но вот, например, под заголовком у тебя выводится ссылка категории уже системой и она создает дублированный контент. Суть плагина – изменить механизм генерации ссылок для wordpress.
Могу ошибаться, но раньше с этим плагином была проблема, в случаи если у рубрик есть подрубрики.
использую плаг Top Level Categories… в ЧПУ проставляю /%postname%.html
в итоге имею ссыль для категории: toribloger.com/wordpress
ссыль для всех записей: toribloger.com/go-php-links-redirect.html
Тут вы написали, что ссылка будет выглядеть так:
wordpressinside.ru/plugins/tinymce-advanced/
А если например, я для статьи использую две категории, то как тогда будет выглядеть ссылка?.
А я вообще никак не убираю «category». Все эти разговоры о дублированном контенте, на мой взгляд – не стоят ровным счетом ничего. В конце-концов я 100% уверен, что Google давным-давно разобрал WordPress по кускам и определил что и как работает.
И, соответственно, прекрасно знает – какая ссылка является основной, а какая – из категорий.
d0s, если вложенные категории, то ссылка будет по типу:
wordpressinside.ru/category1/category2/tinymce-advanced/
Tod, это понятно, но речь идет как раз о том, что для одной записи я использую несколько категорий, так например в статье про плагины, в Категориях я Использую Подкатегорию с Именем Автора (категория авторы), и тут же использую Подкатегорию Важные (категория Плагины).
или еще пример, когда публиковал статью Опции текущей темы там тоже 2 категори: 1) My Work 2)Темы, Шаблоны
Тогда как будет происходить отображение ссылки? вот что интересно =)
d0s, в таком случае система генерирует ссылку для первой категории. Если написать в адресной строке вторую категорию, то пост будет отображаться, но нигде больше эта ссылка «не всплывет» – ни тебе дублированного контента, не проблем с ориентацией на сайте. Кстати, я проверял и, вроде бы, даже в архиве категории номер2 будет показана ссылка на пост с URL`ом от категории1 – то есть технически все очень грамотно.
А просто в категориях разве нельзя сделать str_replace(«/category»,»",$catlink1)? По-моему без заморочки две строчки и функцию назвать, как-нибудь, вот и всё.
Tod, Спасибо за информацию!.
Change life, это к чему здесь str_replace? Выводить ссылку для функции? Зачем, если этим должна заниматься система… Можно и вручную текст написать, только вот гибкости это не добавит.
А чем плох category в ссылке?
Спасибо, очень полезный плагин, придает большую человечность адресу. Надо будет сегодня же попробовать.
Паша, ничем, внимательно читаем статью для чего теоретически можно убирать category.
WP No Category Base кажется в определенных моментах не работает и я отказался от него в пользу другого плагина: «No category parents»
А если не хочешь очередного плагина, то просто весь код, что есть в этом плагине скопируй и перенеси в файл functions.php твоей темы
Я бы попробовал, но в связи с заменой урлов не будет ли проблем с индексированием поисковиками, страницы ведь как бы выпадают из индекса выходит??
ОченьЗлой, вот и я в этом не уверен, поэтому для старых сайтов оставил все, как есть – разница то не особо велика + я их в сапу не закидываю. А для новых можно сразу эту настройку делать.
Я нашел способ очень простой!!!
префикс для рубрик
пишите там точку и все будет как хотелось!
Если я вам помог, то поставьте ссылку на мой блог, пожалуйста.
Driud, оно то ссылки сделает без category но они будут нерабочими и никак не попадешь на страницы рубрик
lilumi, у меня рабочие
Плагин то что надо) порадовал
а я прописываю ф-цию в functions.php темы:
add_action(‘get_header’, ‘my_header’);
function my_header() {
global $wp_rewrite;
$wp_rewrite->category_structure = ‘/%category%’;
}
Попробовала разные способы на разных своих сайтах:
запись в .htaccess не заработала
точка в префиксе для рубрик тоже привела к 404
плагин не везде работал
Способ из крайнего комментария, на локалке работает, позже проверю на хостинге.
Проверила… можно только если сразу прописывать на новом сайте, на сайте, где уже созданы записи, приводит к 404.
lilumi, точка в префиксе для рубрик и вправду работает оО. проверил на WordPress 3.0.1 на локальном сервере. Надо почитать документацию WordPress, может это новая фича)
Hyperc0der, только что проверил на вп3.0 – там действительно эта фича уже работает, но сам комментарий то был написал еще до появления вордпреса 3.0, а в старых версиях ссылки становятся нерабочими при таком финте :)
До 3.0 работало, если написать в префиксе /../
Причем если смотреть html код, то эти точки там есть, в версии >3.0 точка тоже есть в коде. Но браузеры их обрабатывают нормально, поисковики вроде бы тоже, по крайней мере особого негатива не замечено.
Когда-то спрашивала себя – почему многим так мешает префикс category, пока сама не сделала из этих категорий меню. Самый оптимальный, наверное, вариант – указать префикс для рубрики, а вот при изменении .htaccess у меня почему -то не работает … Да и судя по результатам поиска вносить изменения в рубрики еще можно, а вот менять префикс tag приведет к многочисленным «не найденным» страницам.
а я вот не совсем понимаю зачем удалять category? это как то влияет на индексацию сайта?