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

function seocategorydel($catlink1) {
 $catlink1 = str_replace('/category', '', $catlink1);
 return $catlink1;
}
add_filter('category_link', 'seocategorydel', 1, 1);

Еще несколько ссылочек.

76 responses


Do you want to comment?

Comments RSS and TrackBack Identifier URI ?

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

Март 31, 2010 3:51 пп

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

Март 31, 2010 4:05 пп

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

Март 31, 2010 8:34 пп

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

Март 31, 2010 9:12 пп

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

Март 31, 2010 10:31 пп

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

Апрель 1, 2010 10:38 дп

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

Апрель 2, 2010 8:59 дп

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

Апрель 2, 2010 11:20 пп

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

Апрель 3, 2010 5:47 пп

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

Апрель 3, 2010 6:25 пп

psp, %postname%

Апрель 5, 2010 7:38 пп

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

Апрель 5, 2010 7:41 пп

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

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

Апрель 5, 2010 7:58 пп

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

Апрель 6, 2010 9:10 дп

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

Апрель 6, 2010 6:08 пп

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

Апрель 7, 2010 3:27 пп

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

Апрель 9, 2010 7:30 дп

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

Апрель 9, 2010 11:15 дп

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

Апрель 9, 2010 11:23 дп

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

Апрель 12, 2010 10:52 дп

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

Апрель 12, 2010 5:26 пп

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

Апрель 12, 2010 5:27 пп

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

Апрель 13, 2010 2:09 пп

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

Апрель 13, 2010 6:19 пп

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

Апрель 13, 2010 9:47 пп

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

Апрель 14, 2010 3:14 пп

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

Апрель 15, 2010 8:31 пп

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

Апрель 16, 2010 11:18 пп

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

Апрель 18, 2010 12:30 пп

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

Апрель 19, 2010 8:01 дп

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

Апрель 19, 2010 1:28 пп

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

Апрель 19, 2010 3:52 пп

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

Апрель 19, 2010 7:42 пп

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

Апрель 20, 2010 7:49 дп

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

Апрель 20, 2010 9:20 дп

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

Апрель 20, 2010 4:06 пп

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

Апрель 21, 2010 2:45 пп

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

Апрель 22, 2010 9:57 пп

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

Апрель 23, 2010 1:57 пп

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

Апрель 23, 2010 5:38 пп

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

Апрель 23, 2010 7:26 пп

Сбросить то нечего… Плагин на локалке тестировал.
У тебя вот к примеру сылки _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

Апрель 25, 2010 9:35 пп

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

Апрель 26, 2010 8:22 дп

http://codex.wordpress.org/Using_Permalinks, секция Paged Navigation Doesn’t Work, вроде бы оно

Апрель 26, 2010 12:02 пп

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

Апрель 27, 2010 2:31 дп

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

Май 2, 2010 1:27 дп

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

Май 3, 2010 7:06 пп

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

Май 8, 2010 9:49 пп

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

Май 12, 2010 11:26 дп

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

Май 17, 2010 11:06 пп

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

Май 18, 2010 12:21 пп

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

Май 19, 2010 7:37 дп

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

Май 23, 2010 1:29 дп

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

Май 26, 2010 10:13 пп

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

Май 28, 2010 2:18 пп

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

Июнь 9, 2010 11:53 дп

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

Июль 8, 2010 9:20 пп

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

Июль 9, 2010 2:10 пп

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

Июль 17, 2010 9:08 пп

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

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

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

Июль 23, 2010 2:16 пп

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

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

Заходу

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

Июль 28, 2010 2:56 пп

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

Июль 28, 2010 11:58 пп

2 Alex Volkov

Спасибо что отозвались. Но уже вроде решил сам.

Июль 29, 2010 12:20 дп

Любопытно. Надо попробовать этот метод. Правда, этот метод с изменением functions.php, так сказать «железный». Разве с плагином «seo-without-category» не более гибкие возможности?
Или все-таки принцип: чем меньше плагинов, тем лучше работает движок имеет место быть?

Август 21, 2010 6:28 дп

Спасибо за статью. Вопрос, а вот если у меня довольно много категорий и они все уже есть в индексе (на некоторых есть PR), я поменяю их урлы, как написано в статье, они пропадут из индекса и пропадёт PR?

Август 24, 2010 4:52 пп

Спасибо Алекс, оч помог, давно пытался избавиться от category в urlе а плагин лишний ставить неохота. Респект))))

Ноябрь 16, 2010 10:41 дп

ток теперь в титле категорий пишет что такой страницы нет(((

Ноябрь 16, 2010 10:45 дп

Все понятно, мне лично всё понравилось, только вот один минус, сайт слегка подтормаживает у вас, а так всё норм! ;-)

Ноябрь 23, 2010 10:12 пп

Все описанное выш понятно. Однако у меня возник другой, насущный вопрос по этой тематике: если на сайте есть категории и подкатегории, то как их удалить в ссылках, чтобы в итоге все выглядело примерно так:
- для постов: имя_сайта://пост.html (можно и без html);
- для категорий: имя_сайта://категория/;
- для подкатегорий: имя_сайта://подкатегория/
При этом сохранить в ЧПУ структуру типа /%category%/%postname%/
Хотелось бы обязательно оставить «в живых» /%category%/, поскольку она ряду плагинов, в том числе и по оптимизации, может потребоваться.
Как разрешить данную ситуацию? Я сегодня искал в Инете ответ, да все какие-то однобокие ответы попадаются: только с удалением слова category, или родителькой директории, или поддиректории. А вот как сделать все и сразу – так и не нашел. Но сайты с подобной эргономичной и удобной для оптимизацией структурой встречаются. Значит можно сделать такое. Не подскажите как?

Декабрь 3, 2010 4:54 пп

Валерий, ловить урл и править его руками

Декабрь 8, 2010 11:17 дп

Обьясните пож-ста …я ничего не понимаю по вашим комментариям…что делать

Декабрь 20, 2010 4:46 пп

Приведенная функция — это и есть плагин Seo-Without-Category. Кто не верит скачайте плагин и посмотрите его код. Единственная разница, что код мы вставляем на страницу руками, а не автоматически с помощью плагина.

Январь 24, 2011 3:25 пп

«…ловить урл и править его руками» — ну это Вы жестко придумали! На самом деле я нашел другое решение, мне раньше никогда не попадалось на глаза — плагины добавления слеша в конце рубрик и подрубрик. Т.е. сперва подключаем плагином окончания html к статьям, затем пишем /%category%/%postname%.html, затем обрезаем плагинами структуру до нужного вида, а затем хлоп — плагин слеш в конце рубрик. Вот это я понимаю, это по-нашему… А Вы «ловить руками»… Издеваетесь? :(

Январь 31, 2011 6:46 пп

Valeriy, блин, круто вообще ))

Февраль 1, 2011 12:36 пп

Добр времени суток. Что — то не получается у меня с кодом. Вставляю — пропадает сайт вообще. Просто отображается пустая страница.
Может подскажите что я делаю не так?

Февраль 27, 2011 10:47 пп

function seocategorydel($catlink1) {
return(str_replace(‘/category’, », $catlink1));
}
add_filter(‘category_link’, ‘seocategorydel’, 1, 1);

В конец файла /wp-includes/plugin.php, перед «?>». WordPress 3.1.1, PHP 5.3 работает.

Май 3, 2011 6:01 дп

Comment now!
















Trackbacks

1