Как убрать category из урла в wordpress

Можно колдовать с category base в настройках, но я нашел в интернетах более простой способ, добавив в functions.php пару строк

function seocategorydel($catlink1) {
 $catlink1 = str_replace('/category', '', $catlink1);
 return $catlink1;
}
add_filter('category_link', 'seocategorydel', 1, 1);
3.60 avg. rating (73% score) - 5 votes

81 комментарий

  • А просто в настройках разве нельзя поменять…
    Category base
    или
    плагином точно можно токо я название не помню… 🙂

  • Все гениальное — просто!)

  • О да! Большое спасибо!

  • А зачем убирать категории из урла? О_о .. Надо ж как-то конкретизировать, а то получается блог мегасакральных знаний..я слышал что вроде это надо, а зачем??

    • ОченьЗлой, затем что category в урле не очень смотрится

  • взял на заметку, спасибо) будем использовать

  • Alex Volkov, подскажи пожалуйста, как убрать category, но, что-бы структура сайта(ЧПУ) осталась в виде %postname% т.к в твоем случае(%category%/%postname%), любой пост будет содержать сайт.ру/рубрика/новость, а хотелось бы сайт.ру/новость. Спасибо!

    • psp, %postname%

  • А разве при настройках чпу в админке не возможно это сделать?

  • Привет, однофамилец! Только зачем это делать? Правила, по которым формируется пермолинка редактируется в админке в разделе permalinks. Убрал оттуда категорию и всех делов.

    • Алексей Волков, привет )) домен козырный у тебя ))
      >>Убрал оттуда категорию и всех делов.
      category не убирается, в том то и дело. Например у меня пермалинк %postname%.html , а категории имеют вид http://alexvolkov.ru/category/sport, http://alexvolkov.ru/category/skripty . Т.е. напрягает именно присутствие category/

  • Лично для себя я вижу пользу исключения категории из урла в том, что имеется возможность в будущем перенести статьи из одной категории в другую, поменять название категории и т.д. То есть остаются возможности для маневров. И все это не отразится на ссылочном на ранее проиндексированные страницы (урлы останутся прежними).

  • А, понял… Тут ты прав. Зато с помощью Category base его можно сократить легко до http://alexvolkov.ru/c/sport

    Домен, да. :-).В давние времена добыл, в еще довоенные. :-). Как и все мои домены любимые.

  • отличный трюк, применю на своём блоге, спасибо)!

  • Блин, всё так простобыло, я вчера целый вечер мучался, чтобы убрать этот category и так и не сделал, а тут раз-два и готово. Спасибо огромное !!!

  • Как раз искал подобное для своего блога!

  • Привет.
    Если откусываю category, то по клику на название рубрики пишет, что мол ничего не найдено, вместо того, чтобы как раньше выводить список статей в этой рубрике. Что я делаю не так и как поправить?

    • Sonikelf, урл у рубрики какой получается? Я когда убираю category, руками еще урлы переписываю, потому что они по старинке с category идут

  • Интересное решение. Хотя на сколько я помню, отображение категории из адресной строки можно убрать и с помощью плагина.

    • Владимир, можно, но зачем вешать для этого лишний плагин?

  • вот спасибо) не ожидала что всё так просто делается.. давно мучилась с этой проблемой)

  • Круто, спасибо, давно интересовал этот вопрос с сылками))

  • Я тоже в коде данное дело подправляю, если что! После знакомства с PHP, мне как то проще код подправить, нежели какиетго плангины ставить, или ещо бох весть что!

  • У меня дак все убирается, когда ставлю ЧПУ %postname%. Никакие категории нигде не вылезают, просто может версия движка чем то отличается?

  • Верно, проще через Rustolat убить категории: быстро, дешево, и практично :)))

  • Так дойдет до того что вам проще будет написать свой движко для блога 🙂

  • спасибо за совет! можно теперь ещё от одного плагина избавится

  • Лучше поставить seo плагин для вордпресса и не мучаться с ручной оптимизацией.

  • Идея хорошая, а 404 вылазят?

    • Лена, все правильно если сделать то нет

  • Для меня это решение наиболее подходящее, потому как делать все только при помощи плагинов не слишком то правильно, если есть возможность обойтись без них, и так Вордпресс прожорливый. Не вешать же на каждую мелочь отдельный плагин.

  • В принципе дело нужное только для красоты, НО для сайтов, которые проиндексированы поисковиками, лучше ничего не менять, а то всё повылетает, и не факт, что снова попадёт в индекс 🙂

  • это конечно всё хорошо, но только у меня в ЧПУ прописано «/%postname%.htm» и слова «category» в прямых урлах на статьи нет!

    • ahmetoff, на список категорий наведи и там увидишь.

  • Хорошее однако решение, если не хочешь ставить дополнительных плагинов 🙂

  • Интересный способ решения проблемы. Не знал, что так можно. Лично я убирал category из урла при помощи плагина.

  • Отличный способ, всегда мещали эти категории, многие ещё давали таким ссылкам УВ больше, чем оно есть.

  • А с навигацией внутри категории кто, что делал? То есть если у меня к примеру в рубрике 25страниц. Открываю рубрику, по умолчанию на одну страницу выводится 5 страниц рубрики. Нажимаю далее, либо выбираю страницу в навигации и идет ошибка 404. Если вручную в сылку добавить category, то все нормально.
    То есть вот такая страница mysite/название_категории/page/2/ идет с ошибкой, надо вот такую mysite/category/название_категории/page/2/.
    Кто как это решал?

    • Sevod, скинь пример, посмотрим в чем трабла.

  • по-моему в настройках ЧПУ это можно сделать

  • категорию из ссылки убирают для того, чтобы страницы были 2 уровня, и ссылки с них дороже продаются 🙂

  • Сбросить то нечего… Плагин на локалке тестировал.
    У тебя вот к примеру сылки _http://alexvolkov.ru/category/wordpress. А у меня получалось _http://alexvolkov.ru/wordpress. Переход на первую страницу _http://alexvolkov.ru/wordpress нормально проходит, а вот дальнейшее листание уже не работатет, требует вот такого вида _http://alexvolkov.ru/category/wordpress/page/2. Тоесть что бы category было обязательно, иначе 404.
    С помощью ЧПУ поправить удавалось, но тогда уже не открывались страницы О.о Вордпрес 2.9.2

  • На блоге на этом поставил код, без category отдает 404. На сайтах, где я применял это, была custom структура файла archives.php, но я уже не помню что и как там делал. Вечерком посвободней буду, гляну.

  • Спасибо за пост.
    Я как раз хочу на водпресе сделать один сайт, и задавался этим вопросом, чтобы из урла убрать лишнее.

  • Sevod, если я правильно понял, то страницы page/2 (page/3, page/4 и так далее) не открываются или открываются с ошибкой. Если вы применяете плагин, то решение проблемы вот: в чпу нужно прописывать не %category%/%postname%, %category%/%postname%.html — обязательно наличие html, тогда всё будет в порядке — будет ссылка домен/название категории/page/2.

  • 2 Puhtya.
    Спасибо, вот так заработало, я действительно без html пытался применить.
    А кто знает что за функция и где находится разделяющая категории на страницы? Просто стало интересно почему без html не работает.

  • Sevod, без html не работает, потому что это прописано в плагине. Сам не очень в этом разбираюсь, поэтому это не точно. Поищите, я когда то наткнулся на сайт, на котором автор перелапатил этот плагин и он стал нормально работать и без html.
    Функция, разделяющая категории на страницы, скорее всего, назодится в коде wordpress, так как уоличество записей на странице ставится в админке.

  • А работает ли данный метод совместно с плагином WP-page navi?
    У меня такая вот проблема в паре SEO without catergory + WP Page Navi — при просмотре не первой страницы рубрики даёт 404 ошибку.

  • Вот млин :). Сколько пользуюсь WordPress, а в functions.php так залезть и не подумал. Говоришь там полезные вещи для создания шаблона лежат. Надо полюбпытствовать. Спасибо за идею, будет над чем голову поломать.

  • Alex Volkov, заранее извиняюсь, но повторю свой вопрос заново. Используя ваш способ, можно сократить «не нужное» слово category из УРЛа страницы. После чего категории(рубрики) сайта перестают открываться по причине 404 ошибки(Not Found). Тогда, что-бы избежать этой ошибки в настройках WordPress в разделе ЧПУ(галочка Произвольная структура) надо прописать %category%/%postname%. После применения категории(рубрики) работают, но каждая новость содержит опять же «не нужное» слово category. Вопрос заключался в том, что бы убрать %category%, как в новости так и в категориях. Помогите, хотя бы сделать такой вид навигации на сайте «категория-рубрика» без слеша. На примере, своего сайта из http://psplay.ru/psp/wallpapers сделать http://psplay.ru/psp-wallpapers. Огромное спасибо.

    • psp, category можно убрать кодом из поста. ЧТобы категории не было в посте, указываем в чпу %postname%.

  • Alex Volkov, я попробовал поставить в чпу %postname%, но сталкнулся с проблемой. Урлы действительно стали такими: http://psplay.ru/psp-wallpapers, то бишь без категории. Но, на страницах самих категорий ( http://psplay.ru/psp например) выдаёт ошибку 404. Как побороть?

    • Puhtya, попозже выложу код для лупа, который корректно выводит пагинацию

  • Спасибо за статью, всегда кумарили меня category в урле, теперь смогу от них избавится. Ещё раз Спасибо!

  • Попробовал я добавить, в итоге 404 ошибка при переходе в категории.
    Использую плагин rustolat

  • Спасибо, сделал у себя на блоге именно так.
    Никита, я тоже rustolat использую, не в нем дело точно…

  • Всегда поражался, когда какое-то простое решение заменяют установленным плагином, а тут несколько строчек и нет лишней нагрузки на движок. Спасибо, Александр!

  • Минимализм статей поражает. Хорошо для тех, кто глубоко в теме. Я не рискну воспользоваться этим, и так масса ошибок приходит на почту после плагина Smart 404.

  • Автору респект. Перерыл нет в поисках, решения этого дела без плагина. Короче еще раз респект!

    Конечно мой блог еще молод. Но может захочешь обменяться ссылками пиши!

    В твите следую за тобой!

  • Добрый день! ПЛЗ кто-нить помогите. Попользовался данным методом, добавил строки в functions.php. Все бы хорошо, но вот пагинация перестала работать. т.е я захожу в рубрику новости, там у меня пагинация. Нажимаю на страниц 2 к примеру, мне выдает ошибку 404. Если я руками прописываю путь 2ой страницы с указанием /category/ то тогда все работает. Как сделать так, чтобы данный метод работал с пагинацией без /category/

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

    Заходу

    Очень прошу отзовитесь кто-нить плз. Спасибо

    • Denis, стукнись в асю, подумаем как решить.

css.php