插件的自定义页面上的$Pages Always 0

时间:2012-02-01 作者:mjjwatson

我正在制作一个插件,根据传递的特定查询变量加载特定模板,实际上是在前端为插件创建一个页面,如本文所述:

Create a page without adding a page in the Database - Brian Fegter的第一个答案

所以如果我去我的网站。我可以使用我的自定义模板。但是,如果我将一个函数挂接到wp\\u head并打印出分页的query\\u var,那么无论url中的值是什么(mysite.com/foobar/page/2或示例),它都会返回0。

有没有想过为什么会发生这种情况?有没有更好的方法让我的插件在前端创建一个新页面?

提前谢谢。

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

我自己解决了这个问题。问题是:

add_rewrite_rule(\'^foobar?\',\'index.php?is_foobar_page=1\',\'top\');
这将阻止创建任何其他query\\u vars。要解决此问题,需要设置稍微复杂一点的“重写规则”组合:

add_rewrite_rule(\'^foobar?$\',\'index.php?is_foobar_page=1\',\'top\');
add_rewrite_rule(\'foobar/page/([0-9]+)?$\',\'index.php?is_foobar_page=1&paged=$matches[1]\',\'top\');
这将考虑插件子页面“foobar”的创建,并允许在此页面内分页。

希望这对别人有帮助。

结束