Я создаю плагин и добавляю пользовательский тип сообщений ssd_vehicles. Одностраничный шаблон работает и использует файлы шаблонов, которые я установил в фильтре «single_template», но «archive_template» не работает, он переходит в состояние is_post_type_archive ( 'ssd_vehicles' )
, но не использует файл шаблона, который я возвращаю в «archive_template».
ssd-plugin.php
register_post_type('ssd_vehicles',
array(
'labels' => array(
'name' => __('SSD Vehicles', 'textdomain'),
'singular_name' => __('SSD Vehicle', 'textdomain'),
),
'public' => true,
'has_archive' => 'ssd_vehicles',
'rewrite' => array( 'slug' => 'ssd_vehicle' ),
'supports' => array( 'title', 'editor', 'custom-fields' ),
)
);
add_filter('single_template', array('MyClass','create_single_template'));
add_filter('archive_template', array('MyClass','create_archive_template'));
public static function create_single_template( $single_template ){
global $post;
if ( 'ssd_vehicles' === $post->post_type ) {
//THIS WORKS AND DISPLAYS THE CORRECT TEMPLATE FILE
$single_template = dirname( __FILE__ ) . '/templates/single-ssd_vehicles.php';
}
return $single_template;
}
public static function create_archive_template( $archive_template ){
global $post;
if ( is_post_type_archive ( 'ssd_vehicles' ) ) {
//CODE GOES HERE BUT THE THIS TEMPLATE FILE IS NOT BEING USED
$archive_template = dirname( __FILE__ ) . '/templates/archive-ssd_vehicles.php';
}
return $archive_template;
}