我正在尝试将规则重写为seo友好。 这是我在主题function.php中放入的代码
add_action('init', 'add_my_rewrite_rule');
function add_my_rewrite_rule(){
add_rewrite_rule('^quiz/([^/]*)/([^/]*)?','index.php?pagename=quiz&quiztitle=$matches[1]&quizid=$matches[2]','top');
}
add_filter('query_vars','set_quiz_query_var');
function set_quiz_query_var($vars) {
array_push($vars, 'quiztitle');
array_push($vars, 'quizid');
return $vars;
}
由于此代码段不起作用,我还尝试重写.htaccess规则。
RewriteRule ^quiz/([^/]+)/([^/]+)$ /index.php?pagename=quiz&quiztitle=$1&quizid=$2 [NC,R=301,L]
我想这是因为w3总缓存。我花了一整夜但却无法独自解决....
答案 0 :(得分:0)
刷新重写规则 - 转到设置永久链接并点击"保存"
答案 1 :(得分:0)
很抱歉回答自己!我花了一整天的时间来找出问题。
我使用了add_filter而不是add_action,结果很好。
add_filter('rewrite_rules_array','add_my_rewrite_rule');
function add_my_rewrite_rule($rules)
{
$newrules = array();
$newrules['^quiz/([^/]+)/([^/]+)/?'] = 'index.php?pagename=quiz&quiztitle=$matches[1]&quizid=$matches[2]';
return $newrules + $rules;
}