我希望能够有一个url,其中有一个国家(又名美国=美国或加拿大=ca)定义的地区,我希望url是美丽的。这些都没有将变量附加到url上。
在设计WordPress页面时,有一个slug字段,它基本上是该页面的url。
<<site_url>>/<<slug>>/<<country_code>>
我想在我的主题中的url中添加国家代码,并允许php在没有404的情况下对我的选择进行排序。或者由于规范的URL,ca或us神奇地指向其他页面。(即,如果url以国家/地区代码ca结尾,则网站会重定向到/职业页面,这不是我想要的。)
希望我能提供一个例子,我的网站还没有上线。仍在开发状态下工作。
有没有办法修改*。htaccess是否可以根据我的需要自定义规则?或者有没有其他方法可以解决这个问题?我考虑过国际化,但有人建议更改图像/布局。
Update
使用
add_rewrite_rule
如中所述
functions.php
<?php
function custom_rewrite_rule() {
add_rewrite_rule(\'^([^/]*)/([^/]*)/?\',\'$matches[1].php?country=$matches[2]\',\'top\');
//student page_id = 95
add_rewrite_rule(\'^student/([^/]*)/?\',\'index.php?page_id=95&country=$matches[1]\',\'top\');
}
add_action(\'init\', \'custom_rewrite_rule\', 10, 0);
?>
如何访问该国?是通过
$_GET[\'country\']
?
SO网友:mcv
参考此问题,我能够解决此问题:
Need help with add_rewrite_rule
为了简单地显示我在这里所做的更改,在我的主题中
functions.php
我添加了以下操作:
add_action(\'init\',\'custom_rewrite_rule\');
function custom_rewrite_rule(){
add_rewrite_rule(\'^student/([^/]*)/\',\'index.php?pagename=student&country=$matches[1]\',\'top\');
}
这使得我的URL可以是:
但是,在清除永久链接之前,无法识别这种形式的url。要这样做,请访问wp-admin dashboard, 选择Settings->Permalinks
从右侧菜单屏幕,按Save
主屏幕底部的按钮。
现在,上述URL应该可以工作了。
接下来,您要在url中保存额外的var,以供以后使用。在上面的示例中country
. 这是通过使用add_filter
在里面functions.php
:
add_filter(\'query_vars\',\'country_selection\');
function country_selection($query_vars){
$query_vars[]=\'country\';
return $query_vars;
}
最后,您可能希望稍后在页面(即:student.php)中访问此值。为此,请使用以下方法:
$wp_query->get(\'country\');
您可以回送/var\\u转储上述变量,或将其结果存储在另一个变量中以供以后使用。