Intereting Posts

Показать сообщения пользователя из пользовательского типа сообщений в категории на front-end

Я создал свой настраиваемый тип сообщений (bizdirectory), создал новую запись (Test Business) и создал новую категорию (Business Directory). Но если я добавлю категорию бизнес-каталога (slug = business) в свою Первичную навигацию, ссылка показывает, что она регистрируется как категория, но в ней говорится «ничего не найдено».

Если я ищу свой сайт (используя панель поиска на первой странице) для Test Business, он находит его – URL, который он показывает, – http://www.domain.com/dev/?bizdirectory=test-business – мой код для functions.php ниже:

// Load Custom Post Type function add_bizdirectory() { $labels = array( 'name' => __( 'Businesses', 'text_domain' ), 'singular_name' => __( 'Business', 'text_domain' ), 'add_new' => __( 'Add New Business', '${4:Name}', 'text_domain' ), 'add_new_item' => __( 'Add New Business', 'text_domain}' ), 'edit_item' => __( 'Edit Business', 'text_domain' ), 'new_item' => __( 'New Business', 'text_domain' ), 'view_item' => __( 'View Business', 'text_domain' ), 'search_items' => __( 'Search Businesses', 'text_domain' ), 'not_found' => __( 'No Businesses found', 'text_domain' ), 'not_found_in_trash' => __( 'No Businesses found in Trash', 'text_domain' ), 'parent_item_colon' => __( 'Parent Business:', 'text_domain' ), 'menu_name' => __( 'Business Directory', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'description', 'taxonomies' => array( 'category' ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post', 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'custom-fields', 'revisions', 'post-formats' ), ); register_post_type( 'bizdirectory', $args ); } add_action( 'init', 'add_bizdirectory' ); // End 

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

Я ценю любую помощь или совет, которые вы могли бы мне дать 🙂

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

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

Вы должны добавить эту строку в свой регистр cpt code

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

Замена этой строки в коде.

 'taxonomies' => array( 'category' ), 

А затем добавьте этот код в свои функции. Php

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

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

 // Load Custom Post Type function add_directory() { $labels = array( 'name' => __( 'Businesses', 'text_domain' ), 'singular_name' => __( 'Business', 'text_domain' ), 'add_new' => __( 'Add New Business', '${4:Name}', 'text_domain' ), 'add_new_item' => __( 'Add New Business', 'text_domain}' ), 'edit_item' => __( 'Edit Business', 'text_domain' ), 'new_item' => __( 'New Business', 'text_domain' ), 'view_item' => __( 'View Business', 'text_domain' ), 'search_items' => __( 'Search Businesses', 'text_domain' ), 'not_found' => __( 'No Businesses found', 'text_domain' ), 'not_found_in_trash' => __( 'No Businesses found in Trash', 'text_domain' ), 'parent_item_colon' => __( 'Parent Business:', 'text_domain' ), 'menu_name' => __( 'Business Directory', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => true, 'description' => 'description', 'taxonomies' => array( 'biz-cat' ), 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, //'menu_icon' => '', 'show_in_nav_menus' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'has_archive' => true, 'query_var' => true, 'can_export' => true, 'rewrite' => true, 'capability_type' => 'post', 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'custom-fields', 'revisions', 'post-formats' ), ); register_post_type( 'bizdirectory', $args ); } add_action( 'init', 'add_directory' ); // Create Custom Taxonomy function directory_create_taxonomies() { register_taxonomy( 'biz-cat', array( 'bizdirectory' ), array( 'hierarchical' => true, 'label' => 'Business Categories', 'singular_name' => 'Business Category', 'show_ui' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'biz-cat' ) )); } add_action( 'init', 'directory_create_taxonomies', 0 ); // 'bizdirectory' is the registered post type name function directory_columns($defaults) { // 'biz-cat' is the registered taxonomy name $defaults['biz-cat'] = 'Business Category'; return $defaults; } function directory_custom_column($column_name, $post_id) { $taxonomy = $column_name; $post_type = get_post_type($post_id); $terms = get_the_terms($post_id, $taxonomy); if ( !empty($terms) ) { foreach ( $terms as $term ) $post_terms[] = "<a href='edit.php?post_type={$post_type}&{$taxonomy}={$term->slug}'> " . esc_html(sanitize_term_field('name', $term->name, $term->term_id, $taxonomy, 'edit')) . "</a>"; echo join( ', ', $post_terms ); } else echo '<i>Not assigned.</i>'; } add_filter( 'manage_project_posts_columns', 'directory_columns' ); add_action( 'manage_project_posts_custom_column', 'directory_custom_column', 10, 2 );