为具有共享术语的共享自定义分类创建单独的模板

时间:2014-06-29 作者:user2506619

enter image description here我创建了名为“的自定义分类法”;产品类别“;,已与post type共享;书籍“;和;电影。

因此,我需要为这两种帖子类型创建不同的模板。

这两个模板的设计都会有所不同,因此post\\u类型和post\\u类型共享分类法很重要(甚至它们的术语也会在post\\u类型和post\\u类型中共享)应具有不同的模板。

路径应类似于:-

网站/书籍/产品\\类别/恐怖/

网站/电影/产品\\类别/恐怖/

1 个回复
最合适的回答,由SO网友:Abhineet Verma 整理而成

看,很难有路径

网站/书籍/产品\\类别/恐怖/

网站/电影/产品\\类别/恐怖/

因为wordpress功能将在custom\\u post\\u type和;他们的分类法,如果试图像你提到的那样保持url。我建议您考虑我在下面提到的方法来解决您的问题。

站点/产品\\类别/恐怖/?post\\u类型=书籍

站点/产品\\类别/恐怖/?post\\u类型=电影

现在要按照共享条款保留模板,请在主题目录中创建两个模板。

常用术语手册。php通用术语电影。php并且,使用此代码根据自定义帖子类型重定向到模板:

add_filter( \'template_include\', \'wpse_152146_template_override\', 99 );
function wpse_152146_template_override(){
    if (is_tax()) {
        if ( \'books\' == $_GET[\'post_type\']) {

            $new_template = locate_template( array( \'common-term-books.php\' ) );
            if ( \'\' != $new_template ) {
                return $new_template ;
            }

        }
        elseif ( \'movies\' == $_GET[\'post_type\']) {

            $new_template = locate_template( array( \'common-term-movies.php\' ) );
            if ( \'\' != $new_template ) {
                return $new_template ;
            }

        }
        else
            return $template;
    }
    else
        return $template;
}
此外,您还可以使用我创建的自定义\\u term\\u link函数来获取基于post\\u类型的url

function get_custom_term_link( $term, $taxonomy, $post_type ){
    $link = get_term_link( $term, $taxonomy );
    return $link.\'?post_type=\'.$post_type;
}

get_custom_term_link( \'horror\', \'product_category\', \'books\');
不要忘记创建模板文件common-term-books.php&common-term-movies.php。否则,它只会显示空白的白色屏幕。

结束

相关推荐

1 post, 2 templates

我想能够呈现两种不同的风格(2个模板)后。例如,假设我有post ID 133,我希望有两个url来访问它,因此它会呈现不同模板应用的位置。洛雷姆。com/render1/133。com/render2/1333,例如。。。或者可能是这样的:洛雷姆。com/post/133和lorem。com/post/133?模板=2您将如何操作?