0

我正在添加多个查询字符串,但它似乎不起作用。我发现了一些似乎对其他人有用的代码,但可能是我遗漏了一些东西。

我想要类似的东西:

http://mydomain.com/board/?getyear=2013&getsometext2=sometext

http://mydomain.com/board/2013/sometext/

然后我将下面的代码添加到functions.php文件中。它似乎并没有像它应该的那样工作。

这行得通。回显查询字符串可以毫无问题地获得两个变量。

http://mydomain.com/board/2013/sometext/

但这不是。我测试了查询字符串 vis isset(),但似乎没有设置/获取

http://mydomain.com/board/2013/

function add_query_vars($vars) {
    $vars[] = "getyear";
    $vars[] = "getsometext2";
    return $vars;
}

add_filter('query_vars', 'add_query_vars');

function add_rewrite_rules($aRules) {
    $aNewRules = array('board/([^/]+)/([^/]+)/?$' => 'index.php?pagename=board&getyear=$matches[1]&getsometext2=$matches[2]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}

add_filter('rewrite_rules_array', 'add_rewrite_rules');

任何帮助将不胜感激。

谢谢!

4

1 回答 1

0

正如我所料,当不使用第二个参数时,我错过了重写规则。答案是对我有用的代码:

function add_rewrite_rules($aRules) {
  'board/(.*)/(.*)/?' => 'index.php?pagename=board&getyear=$matches[1]&getsometext2=$matches[2]',
  'board/(.*)/?' => 'index.php?pagename=leaderboard&getyear=$matches[1]');
  $aRules = $aNewRules + $aRules;
  return $aRules;
}

希望有人觉得这很有用。

于 2013-10-08T05:15:53.317 回答