自定义页面模板查询_vars

时间:2013-02-11 作者:Poe

我创建了一个自定义页面模板movie-page.php 和一页movie 在WP中。当我访问时,模板显示良好site.com/movie/

我想添加movie_id 作为查询变量。以下是我的代码:

add_filter(\'query_vars\', \'poe_query_vars\');
function poe_query_vars( $vars ) {
    $vars[] = \'movie_id\';
    return $vars;
}
我想添加重写规则,以便site.com/movie/123/ 将给我movie\\u id=123。我不关心页码,尽管我可以使用page 查询var,我需要学习如何正确地执行此操作。

add_filter(\'rewrite_rules_array\', \'poe_rewrite_rules\');
function poe_rewrite_rules($rules) {
    $custom = array(\'movie/([0-9]+)/?$\' => \'index.php?pagename=movie&movie_id=$matches[1]\');
    return $custom + $rules;
}
我已经单击了保存永久链接,可以验证规则是否存在。该规则位于规则的顶部,下面是由自定义页面模板创建的其他规则。在我的电影页面中。php模板,我正在响应重写规则,查询变量和/movie/123/ 给我一部电影\\u id=>123。

Edit - 添加与电影相关的重写规则以供参考

\'/movie/([0-9]+)/([0-9]+)/?$\' => \'index.php?pagename=movie&movie_id=$1&page=$2\',
\'/movie/([0-9]+)/?$\' => \'index.php?pagename=movie&movie_id=$1\',
...
\'movie/attachment/([^/]+)/?$\' => \'index.php?attachment=$1\',
\'movie/attachment/([^/]+)/trackback/?$\' => \'index.php?attachment=$1&tb=1\',
\'movie/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$\' => \'index.php?attachment=$1&feed=$2\',
\'movie/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$\' => \'index.php?attachment=$1&feed=$2\',
\'movie/attachment/([^/]+)/comment-page-([0-9]{1,})/?$\' => \'index.php?attachment=$1&cpage=$2\',
\'(movie)/trackback/?$\' => \'index.php?pagename=$1&tb=1\',
\'(movie)/feed/(feed|rdf|rss|rss2|atom)/?$\' => \'index.php?pagename=$1&feed=$2\',
\'(movie)/(feed|rdf|rss|rss2|atom)/?$\' => \'index.php?pagename=$1&feed=$2\',
\'(movie)/page/?([0-9]{1,})/?$\' => \'index.php?pagename=$1&paged=$2\',
\'(movie)/comment-page-([0-9]{1,})/?$\' => \'index.php?pagename=$1&cpage=$2\',
\'(movie)(/[0-9]+)?/?$\' => \'index.php?pagename=$1&page=$2\',
...

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

创建内部重写规则时,$1 应改为$matches[1].

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post