Intereting Posts
Как исправить параметр входа в WordPress Как работает API метаданных? Отображать пользовательский виджет, добавленный в качестве короткого кода в правильном месте WordPress apply_filters () Недостатки аргументов Как найти страницу в админ на основе постоянной ссылки Спасение и преобразование сообщений из одной схемы постоянной ссылки и сайта в другую Изменение последнего виджета post для включения значков для заголовков сообщений Вывести имя сообщения из значения определенного мета ключа Как получить ссылки на пользователя и тег по его названию? Создание пользовательского виджета WordPress и остановка js от запуска дважды (один раз в активном виджетах один раз в селекторе виджета)? Где search.php? Используйте WordPress для входа на сайт без WordPress Как использовать wp_add_inline_style для пользовательского CSS, добавленного через короткий код? Администратор может ввести JavaScript – потенциальный риск для безопасности? Меню WordPress Custom Walker Class

Удалить подкатегорию и категорию с некоторыми правилами из permalink

Моя текущая опция для permalink установлена ​​в /% category% /% postname% /:

У меня есть категория «stati» и родительская категория «итальянский», «немецкий» . Эта родительская категория имеет некоторую другую родительскую категорию, например:

  • test.com/category/stati/italian/A/B/…/postname
  • test.com/category/stati/german/A/B/…/postname

Мне нужно удалить только эту часть «category / stati /» , ссылка должна выглядеть следующим образом:

  • test.com/italian/A/B/…/postname
  • test.com/german/A/B/…/postname

Но мне нужно придерживаться следующих правил:

1) если мы перейдем к категории «stati» без подкатегории (test.com/category/stati/), мне нужно удалить только «категорию» – test.com/stati/

2) все мои опубликованные сообщения имеют следующую ссылку:

  • test.com/stati/italian/postname,

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

  • test.com/stati/italian/A/…/postname – -> test.com/italian/A/…/postname

Я пишу простой код

// Remove category base add_filter('category_link', 'no_category_parents',1000,2); function no_category_parents($catlink, $category_id) { $category = &get_category( $category_id ); if ( is_wp_error( $category ) ) return $category; $category_nicename = $category->slug; $category_parent = get_category($category->parent)->slug; // If we have parent category and != 'stati' then add it to link and remove 'category' // test.com/category/stati/italian/A to -> test.com/italian/A // else this category is main category 'stati' left it and remove 'category' // test.com/category/stati to -> test.com/stati if ( $category_parent && 'stati' != $category_parent){ $catlink = trailingslashit(get_option( 'home' )). trailingslashit( $category_parent ) . user_trailingslashit( $category_nicename, 'category' ); }else{ $catlink = trailingslashit(get_option( 'home' )) . user_trailingslashit( $category_nicename, 'category' ); } return $catlink; } 

Часть моего кода работает, но когда я прихожу в подкатегорию «A» (test.com/italian/A), я получаю 404 страницы. Возможно, мне нужно написать некоторые правила перезаписи для родительской категории, но как это сделать?

Спасибо!

Solutions Collecting From Web of "Удалить подкатегорию и категорию с некоторыми правилами из permalink"