Wordpress多个自定义查询字符串的麻烦

时间:2013-10-08 03:45:39

标签: wordpress rewrite

我正在努力添加多个查询字符串,但它似乎不起作用。我找到了一些似乎适用于其他人的代码,但可能是因为我遗漏了一些东西。

我想要类似的东西:

  

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

  

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

然后我将下面的代码添加到functions.php文件中。它似乎没有那么好用。

这很有效。回显查询字符串变量都没有问题。

  

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

但事实并非如此。我测试了查询字符串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');

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分: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;
}

希望有人觉得这很有用。