添加_重写_规则()不工作

时间:2015-01-27 作者:Badger

我需要传递一个属性引用URL的最后一部分来搜索数据库中的条目,例如,

http://example.com/cottage-details/G638/

我需要将G638传递到插件的数组中。下面我调用的是小屋详细信息页面,但删除了URL的最后一部分并显示一个空页面,而不是我希望从服务器检索的信息。如果我使用

http://example.com/cottage-details/?propref=G638

它工作得很好。

/**
 * Rewrite tags for plugin
 */
function dcc_rewrite_tags() {
    add_rewrite_tag(\'%propref%\', \'([^&]+)\');
}

add_action(\'init\', \'dcc_rewrite_tags\', 10, 0);

/**
 * Rewrite rules for plugin 
 */
function dcc_rewrite_rules() {
    add_rewrite_rule(\'^[^/]*/([^/]*)/?\',\'index.php?p=2&propref=$matches[1]\',\'top\');
}

add_action(\'init\', \'dcc_rewrite_rules\', 10, 0);
怎么回事?

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

您重写的规则非常广泛,很可能会产生很多冲突。

add_action(\'init\', \'dcc_rewrite_tags\');
function dcc_rewrite_tags() {
    add_rewrite_tag(\'%propref%\', \'([^&]+)\');
}

add_action(\'init\', \'dcc_rewrite_rules\');
function dcc_rewrite_rules() {
    add_rewrite_rule(\'^cottage-details/(.+)/?$\',\'index.php?page_id=2&propref=$matches[1]\',\'top\');
}
然后您可以访问propref 类似查询变量:

$propref = get_query_var( \'propref\' );
记住刷新重写规则;您可以通过进入设置->永久链接并单击保存按钮来完成。

Note: 已更改p 查询var到page_id 因为,正如你在评论中所说,你使用的是一个页面,而不是一个标准的帖子。

结束

相关推荐