我已经在这里学习了教程:http://www.rlmseo.com/blog/passing-get-query-string-parameters-in-wordpress-url/但它仍然不起作用。
在函数中。php,我的代码是
//decode wordpress url to jquery string
function add_query_vars($aVars) {
$aVars[] = "lastName";
return $aVars;
}
// hook add_query_vars function into query_vars
add_filter(\'query_vars\', \'add_query_vars\');
function add_rewrite_rules($aRules) {
$aNewRules = array(\'^physician-profile/([^/]*)/?\' => \'physician-profile?lastName=$matches[1]\');
$aRules = $aNewRules + $aRules;
return $aRules;
}
// hook add_rewrite_rules function into rewrite_rules_array
add_filter(\'rewrite_rules_array\', \'add_rewrite_rules\');
我希望我的链接来自
physician-profile?lastName=Rae-Lee
至
physician-profile/Rae-Lee.
在pysician profile页面中,我的代码是:但我不知道为什么我把它放在这里。似乎只返回lastName的值。
if(isset($wp_query->query_vars[\'lastName\'])) {
$lastNameS=(urldecode($wp_query->query_vars[\'lastName\']));
在主页中,我将医生链接链接为
physician-profile/Rae-Lee,
但它一直会出现在主页上。当我尝试将链接更改为
physician-profile?lastName=Rae-Lee,
它直接进入该页面,但URL不变。作为一个wordpress初学者,你能指出我做错了哪一部分吗?还是我需要其他代码?谢谢你的帮助!
最合适的回答,由SO网友:Ralf912 整理而成
该教程已经过时,似乎没有刷新规则。
function add_rewrite_rule_and_tag() {
global $wp_rewrite;
add_rewrite_rule( \'^physician-profile/([^/]*)/?\', \'physician-profile?lastName=$matches[1]\', \'top\' );
add_rewrite_tag( \'%lastName%\',\'([^&]+)\' );
if ( ! isset( $wp_rewrite->rules[\'^physician-profile/([^/]*)/?\'] ) )
$wp_rewrite->flush_rules();
return;
}
add_action( \'init\', \'add_rewrite_rule_and_tag\', 99 );
您可以使用访问查询变量“lastName”
gloabl $wp_query;
$lastName = $wp_query->query_vars[\'lastName\'];