Intereting Posts
Функция заголовка не работает. Проблема с bloginfo () как размещать функции внутри виджетов Локальный порт отсутствует на некоторых ссылках после понижения MAMP Карусель jQuery не работает на домашнем сайте wordpress как вызвать функцию только на определенных страницах и исключить ее из других страниц Используйте PHP в таблице стилей, чтобы указать фоновое изображение на основе идентификатора категории Такая же база для сообщений WordPress и категории не работает Моя категория слишком велика в меню, что я могу сделать? Оператор JavaScript && в визуальном редакторе wpautop отфильтровать для страниц, но для сообщений Обновить параметр, сохраненный в многомерном массиве Как получить изображения вложений страницы / публикации в галерее, чтобы они были установлены в бэкэнд с помощью WP_Query ()? Можете ли вы использовать еще один короткий код профилировщика с помощью дополнительных настраиваемых полей Попытка получить переменные в раскрывающемся списке категорий с взломом Изменение структуры Постоянная ссылка => Ошибка 404? Как перенаправить

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

Я работаю с пользовательскими типами сообщений в WordPress и задаю вопрос о пули.

Предположим, что нам нужно создать персонализированную тему типа Quiz с таксономией категории Quiz. Я использовал следующий код:

// Create and register custom post type quiz function create_posttype_quiz() { $labels = array( 'name' => _x( 'Quiz', 'post type general name' ), 'singular_name' => _x( 'Quiz', 'post type singular name' ), 'add_new' => _x( 'Add New', 'quiz' ), 'add_new_item' => __( 'Add New Quiz' ), 'edit_item' => __( 'Edit Quiz' ), 'new_item' => __( 'New Quiz' ), 'all_items' => __( 'All Quiz' ), 'view_item' => __( 'View Quiz' ), 'search_items' => __( 'Search Quiz' ), 'not_found' => __( 'No quiz found' ), 'not_found_in_trash' => __( 'No quiz found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'Quizzes' ); $args = array( 'labels' => $labels, 'description' => 'Holds our quiz and quiz specific data', 'public' => true, 'menu_position' => 5, 'supports' => array( 'title', 'editor' ), 'has_archive' => true, 'rewrite' => array('slug' => 'quiz'), 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, ); register_post_type( 'quiz', $args ); } add_action( 'init', 'create_posttype_quiz' ); // Create and register quiz categories function create_taxonomies_quiz() { $labels = array( 'name' => _x( 'Quiz Categories', 'taxonomy general name' ), 'singular_name' => _x( 'Quiz Category', 'taxonomy singular name' ), 'search_items' => __( 'Search Quiz Categories' ), 'all_items' => __( 'All Quiz Categories' ), 'parent_item' => __( 'Parent Quiz Category' ), 'parent_item_colon' => __( 'Parent Quiz Category:' ), 'edit_item' => __( 'Edit Quiz Category' ), 'update_item' => __( 'Update Quiz Category' ), 'add_new_item' => __( 'Add New Quiz Category' ), 'new_item_name' => __( 'New Quiz Category' ), 'menu_name' => __( 'Quiz Categories' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, //'show_admin_column'=> true, 'rewrite' => array('hierarchical'=>true, 'slug'=>'quizzes', 'with_front'=>false), ); register_taxonomy( 'quiz_category', 'quiz', $args ); } add_action( 'init', 'create_taxonomies_quiz', 0 ); 

Все работает отлично, я могу создавать и редактировать викторины, добавлять их в категории викторины и т. Д. Кроме того, я могу получить доступ к викторинам на интерфейсе, например site.com/quiz/sample-quiz-one, site.com/quiz/sample -quiz-two … и список викторин в категориях викторины, например site.com/quizzes/category-one, site.com/quizzes/category-two …

Проблема в том, что я не могу перечислить викторины по сайтам site.com/quizzes, но на сайте site.com/quiz . ( site.com/quizzes создаст страницу не найдена ошибка).

В принципе, я хотел бы иметь возможность:

  • получить доступ к одной викторине по адресу url: site.com/quiz/sample-quiz-one
  • перечислите все викторины на сайте site.com/quizzes, а не site.com/quiz .

Можно ли достичь этого без htaccess или любого другого перенаправления, но используя вышеприведенный код (возможно, некоторые аргументы, о которых я не знаю)?

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

Ваша проблема в том, что WordPress не имеет архива для всех сообщений в конкретной таксономии, а только для архивов для сообщений в каждом термине этой таксономии.

В вашей регистрации CPT вы можете установить 'has_archive' => 'quizzes' чтобы сообщение с типом архива типа публикации отличалось от единственного слипа. Однако я не уверен, что это будет работать должным образом, когда ваша таксономия также использует этот пул для архивов терминов.