Intereting Posts

Категории под настраиваемыми типами сообщений не отображаются должным образом

Я использовал собственный тип сообщения на своем веб-сайте: я добавил archive-{mytaxonomy}.php а также single-{mytaxonomy}.php .

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

Должен ли я добавить какой-либо другой код в свои файлы?

Solutions Collecting From Web of "Категории под настраиваемыми типами сообщений не отображаются должным образом"

Категории и таксономии не совсем то же самое.

Категория – это таксономия по умолчанию

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

 add_action( 'init', 'wpsites_custom_taxonomy_types' ); function wpsites_custom_taxonomy_types() { register_taxonomy( 'cpt-type', 'cpt', array( 'labels' => array( 'name' => _x( 'Types', 'taxonomy general name', 'themename' ), 'add_new_item' => __( 'Add New CPT Type', 'themename' ), 'new_item_name' => __( 'New CPT Type', 'themename' ), ), 'exclude_from_search' => true, 'has_archive' => true, 'hierarchical' => true, 'rewrite' => array( 'slug' => 'cpt-type', 'with_front' => false ), 'show_ui' => true, 'show_tagcloud' => false, ) ); } 

Если вы добавили код, как указано выше, который добавляет параметр для создания пользовательских типов таксономии, тогда вам нужно создать файл с именем вроде:

 taxonomy-cpt-type.php 

Где cpt – имя вашего настраиваемого типа сообщения.

Вы можете использовать приведенный выше код в файле функций дочерних тем и заменить все экземпляры cpt и CPT на имя своего настраиваемого типа сообщений.

Вам также нужно будет добавить эту строку в код, который регистрирует ваш собственный тип сообщения:

 'taxonomies' => array( 'cpt-type' ), 

Вот рабочий пример:

 add_action( 'init', 'wpsites_custom_post_type' ); function wpsites_custom_post_type() { register_post_type( 'cpt', array( 'labels' => array( 'name' => __( 'CPT', 'wpsites' ), 'singular_name' => __( 'CPT', 'wpsites' ), ), 'has_archive' => true, 'hierarchical' => true, 'menu_icon' => 'dashicons-portfolio', 'public' => true, 'rewrite' => array( 'slug' => 'cpt', 'with_front' => false ), 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes' ), 'taxonomies' => array( 'cpt-type' ), ) ); } 

Опять же, замените все экземпляры cpt и CPT на имя вашего настраиваемого типа сообщений.

Для персонализированных страниц типа архива используйте следующее:

 archive-cpt.php 

Для отдельных страниц типа почтового типа используйте что-то вроде этого:

 single-cpt.php 

Опять же, замените cpt в имени файла именем вашего настраиваемого типа сообщения.

Чтобы получить персонализированные сообщения типа post с определенной категорией, используйте обычную таксономию

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

  add_action( 'init', 'news_my_taxonomy'); function news_my_taxonomy(){ // custom post type taxonomies $labels = array( 'name' => 'Categories', 'singular_name' => 'Category', 'add_new' => 'Add Category', 'add_new_item' => 'Add New Category', 'all_items' => 'All Categories', 'edit_item' => 'Edit Item', 'new_item' => 'New Item', 'view_item' => 'View Item', 'update_item' => 'Update Category', 'search_items' => 'Search Categories', 'not_found' => 'No record found', 'not_found_in_trash' => 'No items found in trash', 'parent_item_colon' => 'Parent Item', 'menu_name' => 'Categories' ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'news_category'), 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, ); register_taxonomy('news_category', array('news'), $args); } 

тогда

создать шаблонную таксономическую страницу 'taxonomy-news_category.php'

и добавьте запрос, чтобы получить сообщения с этой категорией

  $cat_name = single_cat_title; $args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'news', 'paged' => $paged); 

Вот и все.

Если вы используете плагин пользовательских сообщений Post UI для создания пользовательских типов сообщений, убедитесь, что вы изменили параметр «Архив» на «Истина», если вы создали свой собственный тип почтового сообщения вручную, убедитесь, что вы добавили «has_archive» => true »в массив.

Затем, скажем, вы добавили новый пользовательский тип сообщения под названием «Фильмы», а затем добавили новую таксономию, связанную с ней, которую slug называется «жанрами» и добавили новый термин в жанры, который slug называется «ужасом», а вы хотел создать конкретный шаблон для «Horror», тогда вы можете создать шаблон, который называется таксономия – {taxonomy} – {term} .php ".

В этом случае шаблон должен называться таксономия-genres-horror.php