wordpress可以使用rewrite API让url更加美观,需要用到两个相关的rewite函数,分别是add_rewrite_tag和add_rewrite_rule。下面看看具体的例子如何自定义wordpress路由规则,和自定义url参数。
add_action( 'init', 'my_rr_url' );
function my_rr_url()
{
//Ensure the $wp_rewrite global is loaded
global $wp_rewrite;
add_rewrite_tag('%myname%','([^&]+)');
add_rewrite_rule( 'haha/([A-Za-z0-9]{1,})/?$','index.php?page_id=8&myname=$matches[1]', 'top' );
//Call flush_rules() as a method of the $wp_rewrite object
$wp_rewrite->flush_rules();
}
add_rewrite_tag自定义url参数
使用add_rewrite_tag函数可以添加自定义url参数,比如以上例子的&myname=,告诉wordpress myname参数是合法的,因此使用add_rewrite_tag函数注册这个url参数。
*add_rewrite_tag函数不是美化wordpress URL路由规则必须的,当你添加自定义参数时才会用到。比如本例添加了一个参数myname。
add_rewrite_rule自定义路由
要美化wordpress的url,必须使用add_rewrite_rule函数,自定义url访问规则,告诉wordpress如何正确解析。如上例中的:
add_rewrite_rule( 'haha/([A-Za-z0-9]{1,})/?$','index.php?page_id=8&myname=$matches[1]', 'top' );
第一个匹配的参数是$matches[1],第二个是$matches[2],以此类推。
熟悉使用了这个两个函数:add_rewrite_tag和add_rewrite_rule,就可以随心所欲的自定义wordpress网站的路由规则了