重写规则不传递变量

时间:2014-09-26 作者:ThePHPUnicorn

我的函数中有以下代码。php文件,返回通过URL传递的值根本不起作用。代码如下:

    function custom_url_source() {

        add_rewrite_rule(
            \'^source/([^/]*)$\',
            \'index.php?source=$matches[1]\',
            \'top\'
        );

        add_rewrite_tag(\'%source%\',\'([^/]*)\');
    }

    add_action(\'init\', \'custom_url_source\');


    var_dump($wp_query->query_vars);
所以通过键入\'http://example.com/source/the-times/ 在URL中,我希望在var转储中看到“source”=>“the times”,但我看到了一个空数组。

我已经刷新了重写规则和标准。htaccess已就位。服务器是标准的LAMP配置。

任何指标都很好。我尝试了这里列出的各种解决方案,但没有成功。我在google上搜索过,但给出的例子不起作用。

1 个回复
SO网友:nothingtosee

尝试将“source”添加为自定义查询变量,而不是将其定义为重写标记。

function wpse162627_add_query_vars( $query_vars ){
    $query_vars[] = "source";
    return $query_vars;
}
add_filter( \'query_vars\', \'wpse162627_add_query_vars\' );    

function custom_url_source() {

     add_rewrite_rule(
         \'^source/([^/]*)$\',
         \'index.php?source=$matches[1]\',
         \'top\'
     );

}
add_action(\'init\', \'custom_url_source\');

结束

相关推荐

Custom permalinks structure

我希望有这样的结构:www.mysite.com/2013 (必须显示2013年的所有职位)www.mysite.com/my-category/2013 (必须显示2013年和“我的类别”类别的所有帖子)www.mysite.com/my-category/my-tag/ (必须显示所有类别为“我的类别”和标记为“我的标记”的帖子)www.mysite.com/my-category/ (必须显示“我的类别”类别的所有帖子)www.mysite.com/my-