0
     
add_filter('query_vars', 'add_query_vars');
 
function add_rewrite_rules($aRules) {
    $aNewRules = array('societies/([^/]+)/?$' => 'index.php?pagename=societies&sid=$matches[1]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}
 
add_filter('rewrite_rules_array', 'add_rewrite_rules');


function add_query_vars($aVars) {
    $aVars[] = "page_id";    // represents the name of the variable as shown in the URL
    return $aVars;
}
 
add_filter('query_vars', 'add_query_vars');

所以我试图在重定向上使用自定义 get 变量。目前,我有一个重定向,可将您带到我网站的某个部分:例如 zzz.net/dashboard?page_id=2278,但我得到一个 404 页面无法显示,所以我添加了此代码。主要问题是我真的不知道我在做什么。

我希望在重定向时使用 ?page_id=2278 等的原因是,我可以在用户到达仪表板页面之前知道他们来自哪里。

建议和指导可能比仅仅回答更有帮助。无论哪种方式,感谢您花一点时间来查看它。

4

1 回答 1

0

Wordpress 核心在查询任何页面对象时使用名为“page_id”的 GET 变量。

相反,如果您将查询更改为“p=2786”,那么 Wordpress 将尝试搜索 ID 为 2786 的帖子。

通过在您的 URL 中包含该变量,Wordpress 会感到困惑,并试图返回一个页面,该页面的 ID 由您的 GET 请求定义。为了防止这样的命名冲突,最好为全局范围内可访问的任何命名变量添加前缀。

将 GET 变量的名称更改为其他名称(即:WJ_page_id),以确保您不会与任何主要的 Wordpress 变量发生冲突。

于 2012-10-11T21:05:20.940 回答