Php Wordpress包含自定义页面

Php Wordpress包含自定义页面,php,wordpress,wordpress-theming,Php,Wordpress,Wordpress Theming,我相信这是一个简单的问题。但是,我如何让Wordpress在启动时忽略加载页面或帖子,而是加载自定义页面?在Wordpress引导过程中,何时决定加载哪个php页面 我将拥有以下url: bt.local/wp/ads/1 并且希望加载一个名为ads.php的php页面,并加载adid=1的广告 解决这个问题的最好办法是什么?(没有称为广告的帖子,也没有称为广告的页面) 谢谢大家! 韩元 Josef???您可以使用模板重定向操作进行此操作-例如: add_action('template_red

我相信这是一个简单的问题。但是,我如何让Wordpress在启动时忽略加载页面或帖子,而是加载自定义页面?在Wordpress引导过程中,何时决定加载哪个php页面

我将拥有以下url:

bt.local/wp/ads/1

并且希望加载一个名为ads.php的php页面,并加载adid=1的广告

解决这个问题的最好办法是什么?(没有称为广告的帖子,也没有称为广告的页面)

谢谢大家!

韩元


Josef

???

您可以使用模板重定向操作进行此操作-例如:

add_action('template_redirect', 'my_template_loader');


function my_template_loader() {
    if( get_query_var('adid') ) {
       locate_template(array("your-custom-page.php"), true);
    }
}
编辑:

除此之外,您还需要一些新的重写规则来添加自定义url-基本信息在这里

您的规则可以是这样的:

$newrules['ads/(\d*)$'] = 'index.php?pagename=ads&adid=$matches[1]';
add_filter('query_vars', 'add_adid_var');
function parameter_queryvars($qvars) {
    $qvars[] = ' adid';
    return $qvars;
}
这需要设置一个名为ads的“占位符”页面,除此之外,您还必须注册新的查询var
adid
,如下所示:

$newrules['ads/(\d*)$'] = 'index.php?pagename=ads&adid=$matches[1]';
add_filter('query_vars', 'add_adid_var');
function parameter_queryvars($qvars) {
    $qvars[] = ' adid';
    return $qvars;
}

谢谢你的回答。但问题更多地与处理变量和wordpress处理页面加载的方式有关。例如,如果我在WP Admin中创建了一个名为About的页面,那么在输入URL/WP/About时,我会看到About页面。但如果我有一个自定义页面,我想在输入URL/WP/Add时被调用,我如何让Wordpress找到那个页面?如果我输入一个未在Wordpress中创建的页面,它将显示“未找到页面”。我希望它澄清了我的问题。祝你晚上愉快!如果它存在于wordpress正在查看的目录中,它将显示出来,甚至不会像使用咒语一样使用wordpressWorks创建!我使用全局$wp\u query而不是$post来提取页面名:$wp\u query->get('pagename')。然后我找到了模板并加载了我的定制ads/index.php文件。非常感谢你!只是注意到我的$wp_查询在向url添加ID时不起作用。例如bt.local/wp/ads/1——1破坏了它。如果我按照你的建议使用$post,我在任何地方都找不到页面名“广告”。我该怎么做?刚刚试过!很好!由于重写规则,我添加了一个名为ads的页面,该页面接收adid。非常感谢你!