1

我的问题:是否可以使用 WP_Rewrite 以便如果将带有自定义查询字符串的 URL(例如:mysite.com/?tid=1)放在地址中,它将变成 mysite.com/1

此查询引用第二个数据库,与正常的 Wordpress 结构无关。它抓取信息并填充索引页面的一部分。

目前我已经能够使用 WP_Rewrite 来做相反的事情。如果您访问http://www.zacharybrady.com/text/wordpress/1/,wordpress 会将其解释为http://www.zacharybrady.com/text/wordpress/?tid=1

我的完整代码:

/*REWRITING*/
function add_rewrite_rules() {

add_rewrite_rule('([0-9]+)','index.php?tid=$matches[1]','top');

}
add_action( 'init', 'add_rewrite_rules' );






/*QUERY TAGS*/
function tid_register_rewrite_tag() {
    add_rewrite_tag( '%tid%', '([0-9]+)');
}
add_action( 'init', 'tid_register_rewrite_tag');

我需要能够做到我已经取得的成就和这个问题的目标。结果应该是用户永远看不到查询字符串。

我做了很多研究,但这个问题的答案似乎让我无法理解。

4

1 回答 1

0

所以我有一个答案,但它远非优雅。

在提交时,我使用的表单发送到 test.php 的 PHP 脚本,其中包含以下代码:

$id = $_GET['tid'];
$url='http://www.zacharybrady.com/text/wordpress/'.$id;
echo "<script>window.location = '$url'</script>";

最后,这模拟了重写。如果有人有更优雅的方式,请告诉我。

于 2012-08-01T20:28:14.007 回答