动态更改加载的页面

时间:2015-02-24 作者:Sequenzia

我想知道如何更改加载的页面。假设我只是使用默认的永久链接,并且我有一个带有page\\u id的URL。我希望能够覆盖通常加载的页面,并根据我将维护的一些逻辑加载不同的页面。

我已经翻遍了一堆文件,但我似乎不知道在哪里可以捕获page\\u id并覆盖它。

我承认我对WP开发不是很有经验,所以我不确定我在做什么。我只是在这里寻找一些方向,以确保这是可能的。

提前感谢您的帮助。

2 个回复
SO网友:Abhisek Malakar

Wp根据其主查询加载页面。

因此,如果您想加载不同的页面,那么您可能必须使用pre\\u get\\u posts挂钩更改主查询。如果你想知道更多。然后请详细说明您要加载不同页面的内容和方式

SO网友:David Gard

恐怕你的问题不是特别清楚,但我觉得你好像在试图覆盖默认模板。例如,您仍然希望显示页面的内容,但不希望使用默认值page.php 样板

如果我是正确的(如果不是,请在评论中告诉我),那么有两种方法可以做到这一点。

使用模板层次结构覆盖,例如,如果您只有一个页面希望使用其他模板显示,您可以简单地命名该页面page-$slug.phppage-$id.php.

例如,如果您有一个名为Example Page 带着一点example 和ID10, 您可以创建一个名为page-example.phppage-10.php.

有关这方面的更多信息,请参阅Codex for the WordPress Template Hierarchy.

使用“template\\u include”过滤器覆盖如果第一种方法对您不好,还有另一种方法。

使用“template\\u include”过滤器,您可以检查要显示的页面,如果需要,还可以更改将使用的模板。

有关更多信息,请参阅Filter Reference for template_include.

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

    if ( is_page( \'portfolio\' )  ) {
        $new_template = locate_template( array( \'portfolio-page-template.php\' ) );
        if ( \'\' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}

结束

相关推荐

Custom pages with plugin

我正在开发一些插件,我想在其中启用自定义页面。在我的情况下,一些自定义页面将包含一个类似于联系人表单的表单(不是字面意义上的)。当用户填写并发送此表单时,应该有下一步需要更多信息。假设包含表单的第一个页面位于www.domain.tld/custom-page/ 成功提交表单后,应将用户重定向到www.domain.tld/custom-page/second. 带有HTML元素和PHP代码的模板也应该是自定义的。我认为部分问题可以通过自定义URL重写来实现,但其他部分目前我还不知道。我真的不知道应该从哪