Как убрать /category/ из URL в WordPress?

26 июн. 2014 г., 14:35:29
Просмотры: 17.3K
Голосов: 6

Я новичок в WordPress и столкнулся с проблемой удаления /category/ из URL.

http://domain/category/category-name 

Мне нужно убрать /category/ из URL. Я пробовал различные решения, например:

Перейти в Настройки >> Постоянные ссылки, выбрать "Произвольно" и ввести: /%category%/%postname%/
Затем установить основу для рубрик как /

Но даже после этого мне не удается убрать /category/ из URL.

Буду благодарен за помощь

Спасибо

1
Комментарии

Судя по информации в Codex, вы можете изменить префикс тегов/категорий, который добавляется в URL, но полностью убрать его нельзя, по крайней мере без перезаписи и некоторых хакерских методов, которые могут идти вразрез с естественным потоком работы WordPress: http://codex.wordpress.org/Using_Permalinks Вы можете попробовать предложенные плагины или посмотреть, поможет ли эта статья, если вы пойдёте по пути перезаписи: http://www.paulund.co.uk/rewrite-urls-wordpress и http://www.wpexplorer.com/the-wordpress-rewrite-api/

RachieVee RachieVee
26 июн. 2014 г. 18:17:13
Все ответы на вопрос 5
1

Для этого существует плагин под названием WP No Category Base. Как следует из названия, этот плагин полностью удаляет обязательную 'Category Base' из постоянных ссылок категорий (например, из myblog.com/category/my-category/ в myblog.com/my-category/).

https://wordpress.org/plugins/wp-no-category-base/

26 июн. 2014 г. 17:31:41
Комментарии

Вот более современная альтернатива: Remove Category URL

Giraldi Giraldi
13 янв. 2015 г. 14:21:50
0

Я рекомендую один из этих двух плагинов для решения задачи:

WordPress SEO имеет возможность удалить базовый префикс /category/ и множество других полезных функций.

Удачи!

26 июн. 2014 г. 16:00:14
1

Я нашел удобное решение, которое можно использовать без плагина.

https://stackoverflow.com/a/27569173/851045

function fix_slash( $string, $type ) {
  global $wp_rewrite;
  if ( $wp_rewrite->use_trailing_slashes == false ) {
    if ( $type != 'single' && $type != 'category' )
      return trailingslashit( $string );

    if ( $type == 'single' && ( strpos( $string, '.html/' ) !== false ) )
      return trailingslashit( $string );

    if ( $type == 'category' && ( strpos( $string, 'category' ) !== false ) ){
      $aa_g = str_replace( "/category/", "/", $string );
      return trailingslashit( $aa_g );
    }
    if ( $type == 'category' )
      return trailingslashit( $string );
  }
  return $string;
}

add_filter( 'user_trailingslashit', 'fix_slash', 55, 2 );
11 янв. 2015 г. 05:09:02
Комментарии

Вышеуказанное не работает для подкатегорий, например: www.site.com/основная-категория/подкатегория/. Возвращает ошибку 404

Giraldi Giraldi
13 янв. 2015 г. 14:24:15
0

Я рекомендую плагин CS Remove Category Base для решения этой задачи.

https://wordpress.org/plugins/cs-remove-category-base/

С помощью этого плагина вы можете легко убрать /category/ из URL-адресов страниц вашего WordPress.

Надеюсь, это будет полезно для вас.

20 апр. 2021 г. 10:12:42
2
-1

Выберите "Произвольную структуру" в постоянных ссылках и добавьте /%category%/%postname%/ после вашего домена. Добавление "/" к базе категорий не сработает, необходимо добавить точку.

Я написал руководство по этой теме: удаление категории из URL руководство

16 авг. 2015 г. 23:14:08
Комментарии

Вам следует добавить важную информацию в ваш ответ, а не ссылку на место, где кто-то может найти соответствующую информацию :-)

Pieter Goosen Pieter Goosen
17 авг. 2015 г. 09:59:17

Это не работает для пагинации в версии 4.6.1

The Unknown Dev The Unknown Dev
28 окт. 2016 г. 16:42:52