Intereting Posts
Изменить заголовок сообщения для конкретной категории Выделите список отдельных экземпляров настраиваемого поля? Почему настройки постоянных ссылок в WordPress «Post name» перестают работать на этом веб-сайте WP? Как показать другую домашнюю страницу для входа в систему и без входа в систему? Автозаполнение или предложение из заголовков сообщений внутри плагина Как вставить значок в название сайта Список сообщений И тип пользовательских сообщений по категориям Когда я нахожусь в редакторе почты и нажимаю «Добавить медиа», почему он не загрузит медиа-библиотеку с помощью этого кода? Загрузка внешнего шаблона страницы и скрипта enqueue из плагина вызывает 403 запрещенную ошибку Проблема создания таблицы с dbDelta Основной сайт single-property.php design, как сайт многоузлового Как добавить и отобразить reCAPTCHA в защищенной паролем форме? Манипулирование / просмотр postmeta удаленно Если инструкция для is_author сообщения как сделать персонализированные сообщения липкими?

Переписать категорию slug

У меня есть несколько категорий:

/europe/postname /usa/postname 

По различным причинам я хотел бы переписать их так:

 /news/view/postname 

Я пробовал несколько плагинов с повторным подключением, но не имел никакого успеха. Это возможно?

Это можно сделать, написав код фильтра post_link . Этот фильтр позволяет вам изменить окончательную ссылку.

Поскольку вы показываете категории в своей постоянной ссылке, я полагаю, что ваша структура постоянной ссылки содержит %category% .

Ниже код поможет вам получить ссылки так, как вы хотите.

 add_filter( 'post_link', 'wdm_change_category_permalink_structure', 10, 3 ); function wdm_change_category_permalink_structure( $post_link, $post, $leavename ) { $array_of_cats_to_be_replaced = array( 'europe', 'usa' ); //array of category slugs. Add more slugs here $get_permalink_structure = get_option( 'permalink_structure' ); if ( strpos( $get_permalink_structure, '%category%' ) !== false ) { $cats = get_the_category( $post->ID ); //get categories assocaited with the post if ( $cats ) { usort( $cats, '_usort_terms_by_ID' ); // order by ID $category_object = get_term( $cats[0], 'category' ); //Take first category $category = $category_object->slug; //Get slug of category if ( in_array( $category, $array_of_cats_to_be_replaced ) ) { //If category we want is in the array $rewritecode = array( '%year%', '%monthnum%', '%day%', '%hour%', '%minute%', '%second%', $leavename ? '' : '%postname%', '%post_id%', '%category%', '%author%', $leavename ? '' : '%pagename%', ); $rewritereplace = array( $date[0], $date[1], $date[2], $date[3], $date[4], $date[5], $post->post_name, $post->ID, 'news/view', //Replace category with news/view $author, $post->post_name, ); $post_link = home_url( str_replace( $rewritecode, $rewritereplace, $get_permalink_structure ) ); $post_link = user_trailingslashit( $post_link, 'single' ); } } } return $post_link; } 

Надеюсь, поможет 🙂