如何快速切换自定义贴子类型单一模板?

时间:2011-02-05 作者:m-torin

我有一个名为movies的自定义帖子类型,我需要快速切换通过链接在前端显示movies cpt的模板。如何做到这一点?

我拥有的文件:单部电影。phpTemplateMoviesLanding。PHP样板电影批发。php

功能:链接组显示在三个模板中的每个模板上,如下所示。这些链接仅显示给登录的员工。员工一点也不懂技术,需要一个简单的解决方案。

视图:概述|登录页|批发

单击每个链接时,我需要切换到该模板。所有模板都使用相同的自定义帖子类型。

谢谢~马特

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

您可以这样做:

//add movies_view to query vars
add_filter(\'query_vars\', \'my_query_vars\');

function my_query_vars($vars) {
    // add movies_view to the valid list of variables
    $new_vars = array(\'movies_view\');
    $vars = $new_vars + $vars;
    return $vars;
}
然后基于该查询变量添加模板重定向:

add_action("template_redirect", \'my_template_redirect\');

// Template selection
function my_template_redirect()
{
    global $wp;
    global $wp_query;
    if ($wp->query_vars["post_type"] == "movies")
    {
        // Let\'s look for the property.php template file in the current theme
        if (array_key_exists(\'movies_view\', $wp->query_vars) && $wp->query_vars[\'movies_view\'] == \'overview\'){
            include(TEMPLATEPATH . \'/single-movies.php\');
            die();
        }
        if (array_key_exists(\'movies_view\', $wp->query_vars) && $wp->query_vars[\'movies_view\'] == \'landing\'){
            include(TEMPLATEPATH . \'/template-movieslanding.php\');
            die();
        }
        if (array_key_exists(\'movies_view\', $wp->query_vars) && $wp->query_vars[\'movies_view\'] == \'wholesale\'){
            include(TEMPLATEPATH . \'/template-movieswholesale.php\');
            die();
        }
    }
}
然后将此var添加到链接中

有关概述,请添加?movies\\u view=登录页添加url概览?movies\\u view=登录url进行批量添加?movies\\u view=批发到url希望这有帮助

结束

相关推荐