Custom Rewrite Rules

时间:2013-03-20 作者:Josh Levinson

我正在开发一个插件,其目标是允许在单个页面上创建一个具有书签功能的永久链接搜索引擎。为此,我使用WP的重写规则来允许搜索/永久链接。

我需要如下结构:http://example.com/courses/nc/charlotteWhere/nc/(或输入/发送的任何内容)稍后可以作为状态变量访问,而对于/夏洛特/作为城市也是如此。

我的代码如下:http://pastebin.com/PNHudKg5(更新后包含下面的建议代码,这并没有阻止查询变量被剥离)。

目前echo \'<h2>\'.$course->post_title.\'</h2>\'; 在其余WP负载之前输出时工作。但是,如果我将代码从查询解析函数移动到一个短代码,那么查询参数/nc/charlotte将从url中消失,并且我的短代码无法访问。

我是否缺少一些保留查询参数以便在页面上使用的函数?似乎当页面加载时,它会剥离url,但在页面加载之前,它们仍然可以访问。

或者我完全做错了?我已经找到了很多不同的方法来使用WP的重写规则,以至于我头晕目眩。WP提供了有关函数的文档,但没有提供如何将它们连接在一起以使用它们构建某些东西的方法。

此外,我正在使用Jan Fabry的重写分析器插件。当我输入时http://example.com/courses/nc/charlotte, 我在下面的窗口中找到了正确的匹配项。所以我知道我做对了什么。

Updated info: 短代码只是在页面上执行代码的临时方法。我实际上需要该页面利用它的正常查询,因为它会提取常规页面内容。搜索结果应该附加在页面内容之后(因此是短代码,或者更高版本的页面模板)。

因此,我无法替换该查询,我正在构建一个新的查询,并将匹配的帖子添加到指定区域的页面中(同样,当前是内容中的短代码;稍后将是页面模板)。

我的设置目前运行得非常好,因为我已经设置好使用典型的GET请求,比如示例。com/课程/?状态=常开(&N);城市=夏洛特

上面的url获取带有meta的帖子,其中自定义字段(在本例中为state和city)与GET请求中的city和state匹配。

我的目标是将此功能移动到WP重写规则,就像我上面提到的那样。希望这能让事情变得更清楚。

1 个回复
SO网友:Rachel Baker

在rewrite()方法中添加:

add_rewrite_tag(\'%state%\',\'([^&]+)\');
add_rewrite_tag(\'%city%\',\'([^&]+)\');
这将保留您在url中添加的查询变量,并防止其被剥离。

结束

相关推荐