首页 > 解决方案 > 未呈现 Wordpress 自定义帖子类型存档页面模板

问题描述

我正在创建一个插件并添加一个自定义帖子类型 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;
}

标签: wordpresscustom-wordpress-pageswordpress-plugin-creation

解决方案


似乎 elementor 正在覆盖我的自定义存档模板。我尝试禁用和启用插件,它似乎可以工作,但是当 elementor pro 处于活动状态时,它会覆盖模板。


推荐阅读