Как убрать category и вложенность категорий WordPress – Плагин No category parents. Wordpress category убрать


удаление "category" из ссылок на рубрики.

Flector 5

09.03.2013

, обновлено: 

WP No Category Base После выхода WordPress версии 3.4 практически все плагины, которые вырезали слово "category" из ссылок на рубрики перестали корректно работать (при установленной структуре ссылок вида "/%category%/%postname%.html"). WP No Category Base это чуть ли не единственный рабочий плагин подобного типа на данный момент. И он точно единственный плагин, который можно установить на уже рабочий и проиндексированный поисковиками сайт - плагин не просто удалит слово "category" из ссылок на рубрики, но и перенаправит старые ссылки на новые с 301 кодом, что полезно, как для SEO-оптимизации сайта (вы не потеряете уже проиндексированные страницы рубрик), так и для пользователей, которые могут по-прежнему заходить на сайт по старым ссылкам.

Скачиваем плагин по ссылке в конце страницы и устанавливаем его:

1. Распаковываем архив.

2. Копируем папку no-category-base-wpml в /wp-content/plugins/.

3. Заходим в админку блога на вкладку "Плагины" и активируем плагин.

Никаких настроек в плагине нет - он начинает работать сразу после своей активации. Не забудьте только, что работает он только при установленной структуре ссылок, которая содержит параметр "/%category%/".

В отличие от не работающего на WordPress 3.4 плагина Remove Parents этот плагин не удаляет вложенность под-рубрик - его задача только удалить слово "category" и ничего больше. Имейте это ввиду.

Плагин делает самую малость, но делает это наиболее правильным путем – не просто удаляет "category" из ссылок, а перезаписывает внутренние правила редиректов в WordPress и заодно реализует 301 редирект для старых ссылок.

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

No Category Base (WPML)Автор плагина: Marios AlexandrouРассматриваемая версия: 1.1.0 от 18.06.2012Текущая версия: 1.3 от 21.12.2017Совместимость с версией WordPress: 4.0 и вышеАктивных установок плагина: 100 000+Скачать плагин версии 1.3 (всего скачено 305 700 раз)

www.wordpressplugins.ru

Плагин No category parents для Wordpress

У меня уже как-то был один большой и подробный пост о том, как удалить category в WordPress категориях в отображении URL ссылки. То есть когда вы, например, заходите в раздел вордпресс шаблонов и видите в адресной строке браузера не стандартную ссылку по типу wordpressinside.ru/category/themes/, а более естественную wordpressinside.ru/themes/. Как я уже говорил ранее, это не слишком критичная «правка», более того – вовсе не обязательная, но лично мне так больше нравится + выглядит естественно.

В прошлый раз для решения задачи среди все методов был выбран плагин WP No Category Base, который обладает весьма обширным функционалом и кроме создания самих улов может работать с подкатегориями, совместим с модулями карты сайтов, работает просто и без вашего вмешательства. На что один из комментаторов блога Lilumi — возразил, что данный плагин оногда у него давал сбой.

Во-первых, большущее спасибо за подобные комментарии и замечания товарищу Lilumi, который уже не в первый раз высказывается по делу и очень хорошо помогает. Во-вторых, им был предложен другой вариант – модуль No category parents. Предлагаю его оценить и проверить на практике.

No category parents

Первое, что бросайте в глаза — это функции модуля. Оказывается, что действия данного плагина несколько отличаются от предшественника, так как он не просто удаляет слово «category» из ссылки, но и убирает из url родительские категории. То есть ссылка вида:

/category/parent-category/my-category/

превратиться в совсем простую конструкцию:

/my-category/

Поэтому, если вам требуется именно такое «глобальное» удаление – можете спокойно использовать плагин No category parents. Для его установки требуется лишь скачать архив с официального сайта здесь, после разархивируете и заливаете файл no-category-parents.php в директорию /wp-content/plugins/ и активируете модуль в админке wordpress. Больше ничего делать не нужно.

Внимание! Для тех, кто как и я не сильно любитель устанавливать всякие лишние плагины, можно обойтись простой правкой файла функций functions.php. Отрываем исходный код файла плагина no-category-parents.php и копируем его содержимое в файл шаблона functions.php, сохраняем и проверяем как все работает на сайте. По сути, разницы особой нету, но мне лично кажется, что без плагина оно будет потреблять меньше системных ресурсов. Относительно общей работоспособности плагина No category parents, то я уже успел проверить его на одном сайте. Использовал именно вариант с файлом functions.php — проблем не возникло.

Кстати, код плагина не очень большой и весьма наглядный, поэтому я уверен, что его можно подправить для удаления лишь блока category. Хотя в таком случае, если нужно удалять лишь элемент category, а не все родительские категории, получается, что принципиальной разницы между No category parents и WP No Category Base практически нет. Работают оба, так что решайте сами какой из них выбирать.

Понравился пост? Подпишись на обновления блога по RSS wordpress insideRSS, RSS wordpress insideEmail или twitter wordpress insidetwitter!

wordpressinside.ru

Как убрать category и вложенность категорий WordPress – Плагин No category parents

Захотел избавиться от вложенности категорий на этом блоге, решил убрать из url слово category и родительские категории рубрики. Найти плагин оказалось не так просто.

Как убрать category

Решил сократит url’ы категорий на своём блоге WordPress, но столкнулся с некоторыми трудностями. А точнее, не мог найти нормальный рабочий плагин, который бы убрал и слово category и родительские рубрики из url категорий.

Задача была убрать category и родительские рубрики из url категорий. Чтобы, например,  из  http://seobook.info/category/scripts/wordpress/ получилось http://seobook.info/wordpress/.

Начал искать плагин, но все рекомендуемые на других блогах плагины мне не подходили. Они либо не работали совсем, либо работали, но убирали только category, но не убирали вложенности. Пробовал remove-parents, Seo-Without-Category и Top Level Categories.

Remove Parents вобще отказался у меня работать. Все ссылки категорий, он превратил в ссылки на главную страницу сайта.

Seo-Without-Category убрал только “category”, но не убрал вложенности категорий, то есть он вместо «/category/parent-category/my-category/» сделал «/parent-category/my-category/». Мне это не подходит.

Top Level Categories точно также как и Seo-Without-Category, убрал только добавку category, но вложенность в родительские рубрики он не убрал.

После продолжительных поисков других плагинов и способов убрать category и вложенность категорий, забрёл в каталог плагинов wordpress, и там нашёл замечательный плагин No category parents, который полностью справился с поставленной задачей.

Плагин No category parents – Этот плагин убирает приставку category и все родительские категории из url вашего блога. Например, «/category/parent-category/my-category/»  превратится в «/my-category/».

Страничка плагина на wordpress.org

Установка No category parents стандартная. Распаковываете скачанный архив, заливаете папку “no-category-parents”  в “ wp-content /plugins”. В админке  активируете плагин. Всё.

Знаете другие плагины или способы убрать category  и вложенность из url категорий, пишите в комментариях.

Скрытая информация только для rss-подписчиков. Подпишитесь для регулярного получения эксклюзивной информации.

seobook.info

Удаляем ярлыки рубрик, меток, таксономий из URL в WordPress

Блог  /  WordPress  /  Удаляем ярлык рубрик (category), меток (tag) и других произвольных таксономий из URL в WordPress

Долгожданный пост!

Когда-то у меня уже была запись о том, как удалить слово «category» из URL рубрик, вот она. Это кстати был мой первый пост на блоге и, как оказалось, тот метод немного сыроват, работает не у всех и не всегда.

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

Весь код будет состоять из двух частей, в первой часте мы собственно меняем ссылки и запросы на странице, а во второй — проставляем 301 редиректы со старых страниц на новые.

Итак, часть 1. Весь код можете вставлять в functions.php вашей темы.

// смена запроса add_filter('request', 'true_smenit_request', 1, 1 );   function true_smenit_request( $query ){   $taxonomia_name = 'product_cat'; // укажите название таксономии здесь, это также могут быть рубрики category или метки post_tag   // запросы для дочерних элементов будут отличаться, поэтому нам потребуется дополнительная проверка if( $query['attachment'] ) : $dochernia = true; // эту переменную задаём для себя, она нам потребуется дальше $urlyarlyk = $query['attachment']; // это ярлык данного термина/рубрики/метки else: $dochernia = false; $urlyarlyk = $query['name']; // как видите, здесь ярлык хранится в другой переменной запроса endif;     $termin = get_term_by('slug', $urlyarlyk, $taxonomia_name); // получаем элемент таксономии по ярлыку   if ( isset( $urlyarlyk ) && $termin && !is_wp_error( $termin )): // если такого элемента не существует, прекращаем выполнение кода   // для страниц дочерних элементов код немного отличается if( $dochernia ) { unset( $query['attachment'] ); $parent = $termin->parent; while( $parent ) { $parent_term = get_term( $parent, $taxonomia_name); $urlyarlyk = $parent_term->slug . '/' . $urlyarlyk; // нам нужно получить полный путь, состоящий из ярлыка текущего элемента и всех его родителей $parent = $parent_term->parent; } } else { unset($query['name']); }   switch( $taxonomia_name ): // параметры запроса для рубрик и меток отличаются от других таксономий case 'category':{ $query['category_name'] = $urlyarlyk; break; } case 'post_tag':{ $query['tag'] = $urlyarlyk; break; } default:{ $query[$taxonomia_name] = $urlyarlyk; break; } endswitch;   endif;   return $query;   }   // смена самой ссылки add_filter( 'term_link', 'true_smena_permalink', 10, 3 );   function true_smena_permalink( $url, $term, $taxonomy ){   $taxonomia_name = 'product_cat'; // название таксономии, тут всё понятно $taxonomia_slug = 'product_cat'; // ярлык таксономии - зависит от параметра rewrite, указанного при создании и может отличаться от названия, // как например таксономия меток это post_tag, а ярлык по умолчанию tag   // выходим из функции, если указанного ярлыка таксономии нет в URL или если название таксономии не соответствует if ( strpos($url, $taxonomia_slug) === FALSE || $taxonomy != $taxonomia_name ) return $url;   $url = str_replace('/' . $taxonomia_slug, '', $url); // если мы ещё тут, выполняем замену в URL   return $url; }

Если вы добрались до сюда и у вас всё работает — отлично, можете переходить к следующему коду статьи.

Если же не работает, то:

  1. Обратите внимание, что я тестировал код с таксономиями с иерархией и без, а также с рубриками и метками с настройками постоянных ссылок /%postname%/.
  2. Если вы меняете URL для рубрик или меток, убедитесь, что ярлыки в настройках постоянных ссылок совпадают с указанными вами в функциях. Это же самое касается произвольных таксономий.
  3. Если вы перепроверили весь ваш код и вроде бы всё ок, оставьте комментарий к этой записи и мы разберемся вместе.

Часть вторая, код 301 редиректа:

add_action('template_redirect', 'true_delaem_redirect');   function true_delaem_redirect() {   // указываем здесь свои значения $taxonomia_name = 'product_cat'; $taxonomia_slug = 'product_cat';   // выходим из функции, если ярлыка таксономии нет в URL if( strpos( $_SERVER['REQUEST_URI'], $taxonomia_slug ) === FALSE) return;   // делаем суперскую проверку, чтобы случайно не редиректнуть страницы, которые не следует if( ( is_category() && $taxonomia_name=='category' ) || ( is_tag() && $taxonomia_name=='post_tag' ) || is_tax( $taxonomia_name ) ) :   wp_redirect( site_url( str_replace($taxonomia_slug, '', $_SERVER['REQUEST_URI']) ), 301 ); // сам редирект exit();   endif;   }

misha.blog

Убрать category из ссылок на рубрики блога в wordpress

Данный пост является неким продолжением предыдущего, так как в нем так же ссылки приводятся в человеческий вид.

Речь пойдет о ссылках на рубрики блога.

Зачем category в ссылках на рубрики в WordPress?

WordPress добавляет в ссылки рубрик слово category специально. Без этого своеобразного разделителя движок может некорректно работать с ссылками сайта, если категорий много и их названия совпадают с названием поста.

Рубрика: http://site.ru/category/pro-avto

Пост: http://site.ru/pro-avto

Только мы уберем category, и ссылки начнут совпадать. Больше в пост мы попасть не сможем, пока не вернем все обратно или название поста не исправим.

Альтернатива слову category. В разделе Настройки -> Постоянные ссылки, где меняется вид ссылок на материалы сайта ниже в «Дополнительно», можно вписать свой вариант разделителя и он будет отображаться вместо category. Например, напишем слово razdel.

Рубрика: http://site.ru/razdel/bez-rubriki

 

Зачем я хочу убрать category из ссылок на рубрики?

Элементарно! Category ничего, кроме длинны ссылке, не добавляет. Но как же корректная работа сайта спросите? Все просто. Мы не будем провоцировать некорректную работу.

 

Убираем Category из ссылок

Для этого скачиваем плагин WP No Category Base. На страницах плагинов WordPress.org дает пользователям возможность, проголосовать за работоспособность плагина с разными версиями движка WordPress. Нам это на руку, мы видим, что данный плагин работает со всеми последними версиями и за него множество голосов с отличными оценками. Скачали. Распаковываем архив с плагином и файлик no-category-base.php закачиваем в папку /wp-content/plugins. В панели управления в разделе плагины активируем плагин. Готово.

В посте «Как будут выглядеть ссылки вашего блога» я предлагал вам два варианта ссылок для вашего блога — это «очень короткую» и «год и название». Данные ссылки никаким образом не смогут совпадать с категориями сайта, только если в первом варианте (/%post_id%) вы не создадите рубрику с цифрой. Например, рубрика 11 совпадет с записью 11 или рубрика 2011, когда-нибудь совпадет с записью 2011. Кроме того варианты «день и название», «месяц и названия» тоже не совпадут с рубриками.

Еще некоторые блогеры предлагают при формировании ссылок на материалы добавлять .html (/%postname%.html), что даст движку четко знать, что это не категория.

joomlasecret.ru

Как удалить /category/ из URL сайта на WordPress | Роман Середенко

Как удалить category из URL сайта на WordPress

Если в Вашем сайте на WordPress настройки постоянных ссылок не по умолчанию, то WordPress при просмотре архива рубрик всегда будет вставлять /category/ в URL. То есть, в адресной строке браузера будет что-то подобное:

http://ваш_сайт.com/category/имя_рубрики

Во многих случаях такой порядок вещей не является удовлетворительным, особенно если вы используете WordPress как CMS (систему управления контентом), а не как блог. К тому же, если Вы занимаетесь продвижением вашего сайта и пытаетесь сделать оптимизированные URL, то слово category, вовсе оказывается лишним и его нужно удалить из адреса страницы.

Удалить из URL слово category, очень легко, для этого нужно сделать следующее:

  1. В Параметры->Постоянные ссылки, под Общие настройки выбрать Произвольно и написать в поле напротив следующее /%category%/%postname%/
  2. Чуть ниже, установить Префикс для рубрик как /
  3. Сохраните.

Теперь URL должен выглядеть так:

http://ваш_сайт.com/имя_рубрики

Данный способ не всегда может сработать, например, если у Вас WordPress MU. Также он не работает для вложенных категорий (рубрик), мы будем получать ошибку 404. В этом случае попробуйте сделать следующее:

  1. В Общие настройки выберите Произвольно и напишите: /%category%/%postname%.html
  2. В Префикс для рубрик напишите «.» (точка, без кавычек)
  3. Сохраните Ваши изменения.

Теперь /category/ не будет присутствовать в URL Вашего WordPress сайта.

romul.name


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта