WordPress CPT插件的自定义模板

时间:2014-07-28 作者:Jagankumar

我正在创建一个wp自定义帖子类型插件。它还支持自定义元数据。现在我的问题是,我必须使用自定义模板文件创建一个归档页面。我为归档页和单页添加了相应的功能。仅有一个的php文件工作正常,而归档文件工作正常。php不工作。这是我的函数

add_filter(\'template_include\', \'testimonial_archive\');
function testimonial_archive( $template )
{

$post_types = array(\'astestimonial\');
 if ( is_post_type_archive( $post_types ) && ! file_exists( get_stylesheet_directory() . \'/testimonial_archive.php\' ) )
    $template = dirname(__FILE__) . \'/list-testimonial.php\';
 if ( is_singular( $post_types ) && ! file_exists( get_stylesheet_directory() . \'/single-testimonial.php\' ) )
    $template = dirname(__FILE__) . \'/single-testimonial.php\';
return $template;

}

1 个回复
SO网友:cybmeta

文件testimonial_archive.php 如果未定义使用该文件的自定义方式,则不是有效的WP模板。预期名称为cpt-archive.php, 在你的情况下astestimonial-archive.php. 此外,不使用file_exists, 您应该使用locate_template() 利用模板层次结构的优势以及与子主题和父主题的兼容性。

add_filter(\'template_include\', \'testimonial_archive\');
function testimonial_archive( $template ) {

    $post_types = array(\'astestimonial\');

    if ( is_post_type_archive( $post_types ) && locate_template(\'atestimonial-archive.php\' ) == \'\' ) {
        $template = dirname(__FILE__) . \'/list-testimonial.php\';
    }

    if ( is_singular( $post_types ) && locate_template( \'single-testimonial.php\' ) == \'\' ) {
        $template = dirname(__FILE__) . \'/single-testimonial.php\';
    }

    return $template;

}

结束

相关推荐

Sort order in get_posts

我创建了一个custom template 对于客户。这将是一个多站点安装上的多语言站点设置。正如你在每个分类字母下看到的,帖子都是按字母顺序开始的,但“M”和“O”都不正常。如果您使用顶部的字母栏点击这些类别,这些帖子将按字母顺序排列。两个页面使用相同的代码,所以我不知道我做错了什么。我有一种感觉,我在某处有一个查询冲突,但我找不到它。下面是进行排序的代码:<section class=\"atozlist\"> <?php $newargs =