Intereting Posts
Рекомендуемое изображение не отображается, когда публикация размещена на Facebook Как ограничить количество форм, которые пользователь может создать в гравитационных формах? Как отключить функцию редактирования сообщения после периода времени? Пространство в атрибуте WordPress, вызывающее проблемы Предварительный просмотр черновика пользовательского типа начинается с 404 Добавить кнопку, чтобы опубликовать страницу редактирования, когда post_status = publish Параметры Framework не правильно сохраняют параметры Обработка событий AJAX без взаимодействия с пользователем get_children () Не работает с orderby Параметр Почему мне пришлось повторно сохранить настройку постоянной ссылки после перемещения моего сайта WordPress другому хостинг-провайдеру? Получать сообщения с того же времени, что и текущее сообщение Все липкие сообщения возвращаются в пользовательском запросе Пользовательский столбец администратора исчезает при использовании Quick Edit Добавить гиперссылки в описании мультимедиа Должны ли файлы шаблонов копироваться в дочернюю тему для редактирования?

Что я делаю неправильно с моей таксономией?

У меня есть тип пользовательских сообщений для зарегистрированных «номеров», а также пользовательская таксономия. Вот код:

<?php /*******************************************/ /* Rooms CPT /*******************************************/ add_action('init', 'room_register'); function room_register() { $labels = array( 'name' => _x('Rooms', 'post type general name'), 'singular_name' => _x('Room', 'post type singular name'), 'add_new' => _x('Add Room', 'add button'), 'add_new_item' => __('Add New Room'), 'edit_item' => __('Edit Room'), 'new_item' => __('New Room'), 'view_item' => __('View Room'), 'search_items' => __('Search Rooms'), 'not_found' => __('Nothing found'), 'not_found_in_trash' => __('Nothing found in Trash'), 'parent_item_colon' => '' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'has_archive' => true, 'capability_type' => 'post', 'hierarchical' => true, 'menu_icon' => 'dashicons-screenoptions', 'supports' => array('title','editor'), 'rewrite' => array( 'slug' => 'rooms/%room_category%', 'with_front' => false ) //'rewrite' => array('slug' => 'products') ); register_post_type( 'rooms' , $args ); } /*******************************************/ /* Rooms Taxonomy /*******************************************/ add_action( 'init', 'rooms_taxonomy', 0 ); function rooms_taxonomy(){ $labels = array( 'name' => _x( 'Room Category', 'taxonomy general name' ), 'singular_name' => _x( 'Room Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Room Categories' ), 'all_items' => __( 'All Room Categories' ), 'parent_item' => __( 'Parent Room Category' ), 'parent_item_colon' => __( 'Parent Room Category:' ), 'edit_item' => __( 'Edit Room Category' ), 'update_item' => __( 'Update Room Category' ), 'add_new_item' => __( 'Add New Room Category' ), 'new_item_name' => __( 'New Room Category' ), 'menu_name' => __( 'Room Categories' ), ); $args = array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_in_menu' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'rooms', 'with_front' => false ), '_builtin' => false ); register_taxonomy( 'room_category', 'rooms', $args ); } 

Однако, когда я пытаюсь посетить url на своем веб-сайте:

http://www.upperhouse.org/rooms

Я получаю ошибку 404. Разве это не должно быть целевой страницей для таксономии? Очень смутно. Спасибо за любую помощь!

Solutions Collecting From Web of "Что я делаю неправильно с моей таксономией?"

Теперь, когда вы создали обычную таксономию (и slug), вам, вероятно, нужно «пересмотреть», так сказать. Перейдите в свой WordPress Admin> Settings> Permalinks и внесите изменения (обратите внимание на исходные настройки). Сохраните, затем вернитесь к исходной настройке и снова сохраните.

Ваш url новый таксономия должна работать тогда.

Джеймс, вам, вероятно, понадобится создать файл archive-rooms.php для отображения страницы. Подробнее см. Здесь. Кроме того, после регистрации типа сообщения вам нужно будет повторно сохранить свои постоянные ссылки.

Надеюсь это поможет.

РЕДАКТИРОВАТЬ

После того, как вы проверили свой код, я вижу, что ваша таксономия – это то же самое, что и ваш пользовательский тип сообщения. Возможно, поэтому вы получаете ошибку 404. Возможно, вы сможете достичь этой функциональности:

  1. Изменение типа таксономического пула и индивидуального пула сообщений должно быть уникальным.

ИЛИ

  1. Настройка структуры permalink на /%postname%/ и следуйте инструкциям из этой статьи .

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

вам нужно обновить свои постоянные ссылки как состояние @REactionFaye. Более процедурный метод заключается в использовании правил перезаписи флеша.

Вы можете увидеть эту страницу на wordpress codex: https://codex.wordpress.org/Function_Reference/register_post_type :

Если вы регистрируете тип сообщения внутри плагина, вызовите flush_rewrite_rules () в вашем крючке активации и деактивации (см. Раздел «Очистка перезаписи при активации» ниже). Если flush_rewrite_rules () не используется, вам придется вручную перейти в «Настройки»> «Перманентные ссылки» и обновить структуру permalink до того, как ваш пользовательский тип сообщения покажет правильную структуру.

Если код находится в плагине:

 add_action( 'init', 'my_cpt_init' ); function my_cpt_init() { register_post_type( ... ); } function my_rewrite_flush() { // First, we "add" the custom post type via the above written function. // Note: "add" is written with quotes, as CPTs don't get added to the DB, // They are only referenced in the post_type column with a post entry, // when you add a post of this CPT. my_cpt_init(); // ATTENTION: This is *only* done during plugin activation hook in this example! // You should *NEVER EVER* do this on every page load!! flush_rewrite_rules(); } register_activation_hook( __FILE__, 'my_rewrite_flush' ); 

а если это в вашей теме:

 add_action( 'init', 'my_cpt_init' ); function my_cpt_init() { register_post_type( ... ); } function my_rewrite_flush() { my_cpt_init(); flush_rewrite_rules(); } add_action( 'after_switch_theme', 'my_rewrite_flush' ); 

На этой странице также много других положительных героев.

что касается проблемы. вы можете проверить правило перезаписи для катехизации комнаты и посмотреть, можете ли вы загрузить его, просто сказав: (ваша категория не должна быть именем CPT, поэтому я изменил «комнату» на «комнаты-типы».

  'rewrite' => array( 'slug' => 'room-types', 'with_front' => false ), 

и измените реальную переписку CPT на это:

  'rewrite' => array( 'slug' => 'rooms', 'with_front' => false ) 

Наконец, в качестве побочного элемента, чтобы убедиться, что в настоящее время или в будущем нет конфликтов, особенно потому, что вы уже используете перезаписи, вы не должны использовать такой общий термин для своего cpt … попробуйте добавить префикс. т.е.: rt_rooms. (этот совет также из кода, но сохранил меня раньше)

Снова помните, что после внесения изменений, если вы не используете перезагрузку флеша, вам необходимо вручную очистить ее, перейдя на настройки и сохранив страницу постоянной ссылки.