Intereting Posts
Как динамически строить цикл запросов с несколькими таксономиями в одном цикле сообщений? Неустранимая ошибка на pluggable.php Запросы базы данных, созданные с использованием фильтров WordPress, защищенных от SQL-инъекций? Показывать сообщения между двумя датами Custom Fields Опубликовать проверку, если отредактированный контент имеет HTML-раздел "div" Каков правильный способ включения встроенного javascript-источника? wp_localize_script & wp_enqueue_script не работает в интерфейсе Как массовое удаление встроенных стилей в пользовательском типе WordPress автоматически? Отфильтровать функцию WordPress в (general-template.php) Почему переменная работает на первой странице, но возвращает NULL на всех других страницах? Как я могу использовать AJAX для сохранения / обновления формы виджетов? Вставить PHP-код через короткий код? Редактирование шаблона не работает WordPress обертывает теги span в теги p WordPress register_post_type Недопустимый тип сообщения

Пользовательская таксономия и постоянная ссылка

У меня есть обычная таксономия и пользовательский тип сообщения. Я нацелен на следующую структуру permalink:

{custom taxonomy}/{custom taxonomy term}/{custom post slug}

Или, по крайней мере,

{custom taxonomy term}/{custom post slug}

Я в настоящее время

{%category%}/{%postname%} , но не кости.

Например, предположим, что у меня есть:

  • states таксономии, и термин таксономии newyork
  • пользовательские jobs типа post с сообщением, которое имеет slug wordpress-developer

Я ищу для достижения:

  • states/newyork : архив всех jobs в newyork , это работает.
  • states/newyork/wordpress-developer : страница пользовательской почты с использованием таксономии и термина в качестве базы в постоянной ссылке.

Цель состоит в том, чтобы перемещаться из states/newyork (список «заданий» и states/newyork в отдельную должность без отклонений от структуры permalink до сих пор, поэтому states/newyork/wordpress-developer

Возникли проблемы:

  • states/newyork/wordpress дает 404
  • newyork/wordpress-developer перенаправляет на jobs/wordpress-developer

Желаемый результат:

  • states/newyork/wordpress-developer на странице пользовательского типа сообщений

PS – не строит другую работу, просто используя это в качестве примера 🙂


текущий таксономия и почтовый регистратор типа:

 function register() { register_taxonomy('state', 'district', array( 'labels' => array( 'name' => 'States', 'singular_name' => 'State', 'search_items' => 'Search States', 'all_items' => 'All States', 'parent_item' => 'Parent State', 'parent_item_colon' => 'Parent State:', 'edit_item' => 'Edit State', 'update_item' => 'Update State', 'add_new_item' => 'Add New State', 'new_item_name' => 'New State', 'menu_name' => 'States' ), 'public' => true, 'show_admin_column' => true, 'hierarchical' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'states', 'with_front' => false ) )); register_post_type('district', array( 'labels' => array( 'name' => 'Districts', 'singular_name' => 'Districts' ), 'hierarchical' => true, 'supports' => array('title', 'page-attributes'), 'public' => true, 'has_archive' => 'states', 'rewrite' => array( 'with_front' => false, 'slug' => 'states/%show_category%' ) ) ); } 

Solutions Collecting From Web of "Пользовательская таксономия и постоянная ссылка"

Я смог решить это, установив правило перезаписи:

 function rewrite_rules($rules) { $newRules = array(); $newRules['states/(.+)/(.+?)$'] = 'index.php?district=$matches[2]'; return array_merge($newRules, $rules); } add_filter('rewrite_rules_array', __NAMESPACE__ . '\\rewrite_rules');