Exibição de lista de postagem personalizada

A seguinte function habilita um único modelo de tipo de postagem personalizado de um plugin:

function ch4_br_template_include( $template_path ) { if ( get_post_type() == 'book_reviews' ) { if ( is_single() ) { // checks if the file exists in the theme first, // otherwise serve the file from the plugin if ( $theme_file = locate_template( array ( 'single-book_reviews.php' ) ) ) { $template_path = $theme_file; } else { $template_path = plugin_dir_path( __FILE__ ) . '/single-book_reviews.php'; } } } return $template_path; } 

Qual é o equivalente para exibir uma lista dos meus tipos de postagem personalizados? Eu quero ter um modelo separado para exibir uma tabela de, no meu caso ‘revenders’, em mysite / revender.

Aqui está o meu tipo de postagem personalizado:

 public function wps_reseller_cpt() { $labels = array( 'name' => _x( 'WPS Resellers', 'post type general name' ), 'singular_name' => _x( 'WPS Reseller', 'post type singular name' ), 'add_new' => _x( 'Add New', 'book' ), 'add_new_item' => __( 'Add New Reseller' ), 'edit_item' => __( 'Edit Reseller' ), 'new_item' => __( 'New Reseller' ), 'all_items' => __( 'All Resellers' ), 'view_item' => __( 'View Reseller' ), 'search_items' => __( 'Search Resellers' ), 'not_found' => __( 'No resellers found' ), 'not_found_in_trash' => __( 'No Reseller found in the Trash' ), 'parent_item_colon' => '', 'menu_name' => 'Resellers' ); $args = array( 'labels' => $labels, 'description' => 'Holds our resellers and reseller specific data', 'public' => true, 'menu_position' => 50, 'supports' => array( 'title', 'editor','image', 'thumbnail', 'custom-fields' ), 'rewrite' => array('slug' => 'resellers'), 'has_archive' => true, ); register_post_type( 'wps-reseller', $args ); } 

Solutions Collecting From Web of "Exibição de lista de postagem personalizada"

Em vez de usar o filtro 'single_template' use o filtro 'template_include' mais genérico para a exibição de postagem única do arquivo annd:

 add_filter('template_include', 'my_custom_templates'); function my_custom_templates( $template ) { if ( is_single() && ( 'book_reviews' == get_post_type() ) ) { if ( ! locate_template('single-book_reviews.php', false) ) $template = plugin_dir_path( __FILE__ ) . '/single-book_reviews.php'; } elseif( is_post_type_archive('book_reviews') ) { if ( ! locate_template('archive-book_reviews.php', false) ) $template = plugin_dir_path( __FILE__ ) . '/archive-book_reviews.php'; } return $template; } 

Depois disso, você apenas criou o arquivo 'archive-book_reviews.php' em sua pasta de plugins.