Wordpress特定页面网址不会返回模板

时间:2018-03-07 12:03:47

标签: wordpress

我有一个Wordpress网站,我为每个页面创建了页面和模板文件。 当我打开任何网址时,它会显示与网址关联的模板文件。 除了“博客”网址,它似乎不被识别为有效页面,并向我显示主页布局。如果我为其他内容重写页面URL和页面名称并将functions.php中的语句调整为新页面的名称,则可以正常工作。 好吧,我希望它也适用于“博客”。 可能是什么问题呢?欢迎任何想法。

if (isset($wp->query_vars["pagename"]) && $wp->query_vars["pagename"] == 'blog') {
    $templatefilename = 'layout-blog_layout.php';
    if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
        $return_template = TEMPLATEPATH . '/layouts/' . $templatefilename;
    } else {
        $return_template = $plugindir . '/layouts/' . $templatefilename;
    }
    do_theme_redirect($return_template);
}

1 个答案:

答案 0 :(得分:0)

问题在于我将registered_post_type作为"博客",因此它不能用作页面。 query_vars中的页面名称没有为该URL设置,因此它不能被识别为页面。相反,我更改了语句以观察post_type = blog。

if (isset($wp->query_vars["post_type"]) && !isset($wp->query_vars["blog"]) && $wp->query_vars["post_type"] == 'blog') {
    $templatefilename = 'layout-blog_layout.php';
    if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
        $return_template = TEMPLATEPATH . '/layouts/' . $templatefilename;
    } else {
        $return_template = $plugindir . '/layouts/' . $templatefilename;
    }
    do_theme_redirect($return_template);
}