Intereting Posts
проблема с page_id и выделение текущей страницы Как создать шаблон для пользовательского URI, связанного с пользователем Получите заголовок WordPress после запятой Скрипт Enqueue для IE wordpress pagination, ссылки появляются, но не идут нигде при нажатии Доступ к страницам WordPress с использованием самостоятельной подписки ssl Как получить прикрепленные файлы в шаблоне формата публикации галереи С get_posts (), как я могу поместить категорию как переменную Переадресация входа – несколько сценариев язык полиланга на домен отключен Как отправить запрос обновления (Pull) на плагины WordPress? wp_nav_menu не работает после стиля dequeuing Как получить дату, когда сообщение было перемещено в корзину? Получить зарегистрированный пользовательский тип сообщения, чтобы получить все пользовательские таксономии Изменение шаблона страницы программно внутри foreach

пользовательская таксономия и пользовательский тип URL-адреса

У меня есть одна серьезная проблема с URL.

есть специальный тип сообщений. это slug – новости .

Новости таксономии slug: news_category

URL-адрес таксономии новостей: http://domain.com/news_category/press-release

Я хочу изменить URL- адрес новостной категории в новостях новостей .

поэтому URL-адрес таксономии новостей будет:

http://domain.com/news/press-release 

Я пытался переписать slug news_category на новости, но это создает проблему с конфликтом. новости показывают новостной url, но все сообщения типа новостей возвращаются 404 не найдены

URL новостного сообщения:

  http://domain.com/news/POST_TITLE 

поскольку сообщения url также содержат новость, в которую входят оба конфликта. получив ошибку 404.

можно ли это исправить? как я могу это исправить?

любая помощь будет принята с благодарностью.

Solutions Collecting From Web of "пользовательская таксономия и пользовательский тип URL-адреса"

Попробуйте этот код. Это может вам помочь.

  class Tax_Seo_Perma { public function __construct() { // Hooks add_filter('rewrite_rules_array',array($this, 'create_rewrite_rules')); add_filter('wp_loaded', array($this, 'flush_rules')); add_filter('post_link', array($this, 'modify_link_addresses'), 10, 3); //add_filter('post_type_link', 'tsp_write_link_addresses', 10, 3); } public function flush_rules(){ global $wp_rewrite; $wp_rewrite->flush_rules(); } public function create_rewrite_rules($rewrite) { global $wp_rewrite; // loop through custom taxonomies $args = array( 'public' => true, '_builtin' => false ); $output = 'names'; // or objects $operator = 'and'; // 'and' or 'or' $custom_taxonomies = get_taxonomies($args, $output, $operator); if ($custom_taxonomies) { foreach ($custom_taxonomies as $tax_name ) { $tax_token = '%'.$tax_name.'%'; $wp_rewrite->add_rewrite_tag($tax_token, '(.+)', $tax_name.'='); } } // read current permalink structure and set the same structre $keywords_rewrite = $wp_rewrite->generate_rewrite_rules($wp_rewrite->root.$wp_rewrite->permalink_structure); return ( $rewrite + $keywords_rewrite ); } public function modify_link_addresses($permalink, $post_id, $leavename) { global $blog_id; global $wp_rewrite; // this is user's permalink structure set in options $permastruct = $wp_rewrite->permalink_structure; $args = array( 'public' => true, '_builtin' => false ); $output = 'names'; // or objects $operator = 'and'; // 'and' or 'or' $custom_taxonomies = get_taxonomies($args, $output, $operator); if ($custom_taxonomies) { foreach ($custom_taxonomies as $tax_name ) { $tax_token = '%'.$tax_name.'%'; $tax_terms = get_the_terms( $post->id, $tax_name ); //var_dump($tax_terms); if ( !empty($tax_terms) ) { foreach($tax_terms as $a_term) { $long_slug = $a_term->slug; if( false != (int)$a_term->parent ) { // a's parent p exists $p_term = get_term( (int)$a_term->parent, $tax_name );//var_dump($p_term->slug); $long_slug = ($p_term->slug) ? $p_term->slug .'+'. $long_slug : $long_slug; } if( false != (int)$a_term->parent AND false != (int)$p_term->parent ) { // p's parent g exists $g_term = get_term( (int)$p_term->parent, $tax_name ); $long_slug = ($g_term->slug) ? $g_term->slug .'+'. $long_slug : $long_slug; } $permalink = str_replace($tax_token, $long_slug, $permalink); break; } } else {$permalink = str_replace($tax_token, 'no-'.$tax_name, $permalink); } } } return $permalink; } }