Апр
17
37

Как удалить 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. Постовой. Хотите скачать бесплатные обои для рабочего – заходите на наш сайт!
Возможно также вам интересна аренда теплохода Киев – скоро ведь лето:)

А еще можно опубликовать статью в своем блоге:
Опубликовать в twitter.com        
рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 3, средний балл: 6,33 из 7)
Loading ... Loading ...

категория Категории: Оптимизация; Плагины; Хаки и секреты;
теги Теги: , , , .
Еще интересно почитать:
Заработай на своих сайтах!

Комментариев - 37 к статье “Как удалить category из ссылок категорий блога”

  • blogoreader   17.04.2010

    Не знаю, у меня как-то без-плагинов все получилось :)
    Просто убрал слово categories, и ссылки все равно работают:
    inspired.com.ua/logotypes
    inspired.com.ua/category/logotypes

  • Tod   17.04.2010

    blogoreader, тут немного не то – ты убрал вручную – в таком случае все будет работать без проблем, но вот, например, под заголовком у тебя выводится ссылка категории уже системой и она создает дублированный контент. Суть плагина – изменить механизм генерации ссылок для wordpress.

  • Sharpei   17.04.2010

    Могу ошибаться, но раньше с этим плагином была проблема, в случаи если у рубрик есть подрубрики.

  • Виталий   17.04.2010

    использую плаг Top Level Categories… в ЧПУ проставляю /%postname%.html
    в итоге имею ссыль для категории: toribloger.com/wordpress
    ссыль для всех записей: toribloger.com/go-php-links-redirect.html

  • d0s   18.04.2010

    Тут вы написали, что ссылка будет выглядеть так:

    wordpressinside.ru/plugins/tinymce-advanced/

    А если например, я для статьи использую две категории, то как тогда будет выглядеть ссылка?.

  • Yaroslav.CH   18.04.2010

    А я вообще никак не убираю «category». Все эти разговоры о дублированном контенте, на мой взгляд – не стоят ровным счетом ничего. В конце-концов я 100% уверен, что Google давным-давно разобрал WordPress по кускам и определил что и как работает.
    И, соответственно, прекрасно знает – какая ссылка является основной, а какая – из категорий.

  • Tod   18.04.2010

    d0s, если вложенные категории, то ссылка будет по типу:
    wordpressinside.ru/category1/category2/tinymce-advanced/

  • d0s   19.04.2010

    Tod, это понятно, но речь идет как раз о том, что для одной записи я использую несколько категорий, так например в статье про плагины, в Категориях я Использую Подкатегорию с Именем Автора (категория авторы), и тут же использую Подкатегорию Важные (категория Плагины).
    или еще пример, когда публиковал статью Опции текущей темы там тоже 2 категори: 1) My Work 2)Темы, Шаблоны

    Тогда как будет происходить отображение ссылки? вот что интересно =)

  • Tod   20.04.2010

    d0s, в таком случае система генерирует ссылку для первой категории. Если написать в адресной строке вторую категорию, то пост будет отображаться, но нигде больше эта ссылка «не всплывет» – ни тебе дублированного контента, не проблем с ориентацией на сайте. Кстати, я проверял и, вроде бы, даже в архиве категории номер2 будет показана ссылка на пост с URL`ом от категории1 – то есть технически все очень грамотно.

  • Change life   20.04.2010

    А просто в категориях разве нельзя сделать str_replace(«/category»,»",$catlink1)? По-моему без заморочки две строчки и функцию назвать, как-нибудь, вот и всё.

  • d0s   20.04.2010

    Tod, Спасибо за информацию!.

  • Tod   20.04.2010

    Change life, это к чему здесь str_replace? Выводить ссылку для функции? Зачем, если этим должна заниматься система… Можно и вручную текст написать, только вот гибкости это не добавит.

  • Паша   22.04.2010

    А чем плох category в ссылке?

  • Семен   22.04.2010

    Спасибо, очень полезный плагин, придает большую человечность адресу. Надо будет сегодня же попробовать.

  • Tod   23.04.2010

    Паша, ничем, внимательно читаем статью для чего теоретически можно убирать category.

  • lilumi   24.04.2010

    WP No Category Base кажется в определенных моментах не работает и я отказался от него в пользу другого плагина: «No category parents»
    А если не хочешь очередного плагина, то просто весь код, что есть в этом плагине скопируй и перенеси в файл functions.php твоей темы

  • ОченьЗлой   25.04.2010

    Я бы попробовал, но в связи с заменой урлов не будет ли проблем с индексированием поисковиками, страницы ведь как бы выпадают из индекса выходит??

  • Tod   26.04.2010

    ОченьЗлой, вот и я в этом не уверен, поэтому для старых сайтов оставил все, как есть – разница то не особо велика + я их в сапу не закидываю. А для новых можно сразу эту настройку делать.

  • druid   26.04.2010

    Я нашел способ очень простой!!!

    префикс для рубрик
    пишите там точку и все будет как хотелось!

    Если я вам помог, то поставьте ссылку на мой блог, пожалуйста.

  • lilumi   26.04.2010

    Driud, оно то ссылки сделает без category но они будут нерабочими и никак не попадешь на страницы рубрик

  • druid   29.04.2010

    lilumi, у меня рабочие

  • JAH   18.05.2010

    Плагин то что надо) порадовал

  • ct   04.07.2010

    а я прописываю ф-цию в functions.php темы:
    add_action(‘get_header’, ‘my_header’);
    function my_header() {
    global $wp_rewrite;
    $wp_rewrite->category_structure = ‘/%category%’;
    }

  • VRS   18.08.2010

    Попробовала разные способы на разных своих сайтах:
    запись в .htaccess не заработала
    точка в префиксе для рубрик тоже привела к 404
    плагин не везде работал

    Способ из крайнего комментария, на локалке работает, позже проверю на хостинге.
    Проверила… можно только если сразу прописывать на новом сайте, на сайте, где уже созданы записи, приводит к 404.

  • Hyperc0der   07.10.2010

    lilumi, точка в префиксе для рубрик и вправду работает оО. проверил на WordPress 3.0.1 на локальном сервере. Надо почитать документацию WordPress, может это новая фича)

  • lilumi   11.10.2010

    Hyperc0der, только что проверил на вп3.0 – там действительно эта фича уже работает, но сам комментарий то был написал еще до появления вордпреса 3.0, а в старых версиях ссылки становятся нерабочими при таком финте :)

  • Borman   30.10.2010

    До 3.0 работало, если написать в префиксе /../

  • Borman   30.10.2010

    Причем если смотреть html код, то эти точки там есть, в версии >3.0 точка тоже есть в коде. Но браузеры их обрабатывают нормально, поисковики вроде бы тоже, по крайней мере особого негатива не замечено.

  • ekaterina   06.01.2011

    Когда-то спрашивала себя – почему многим так мешает префикс category, пока сама не сделала из этих категорий меню. Самый оптимальный, наверное, вариант – указать префикс для рубрики, а вот при изменении .htaccess у меня почему -то не работает … Да и судя по результатам поиска вносить изменения в рубрики еще можно, а вот менять префикс tag приведет к многочисленным «не найденным» страницам.

  • Евгений   18.04.2011

    а я вот не совсем понимаю зачем удалять category? это как то влияет на индексацию сайта?

Оставить комментарий

(предыдущая статья)
(следующая статья)

Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Последние посты
 
Полезное
Облако тегов
Лучшее в категории
Клуб читателей блога
Скажи свое мнение!

Где вы берете Wordpress шаблоны?

Посмотреть результаты

Loading ... Loading ...
Друзья проекта
Интернет новости
Последние новости