Home >Backend Development >PHP Tutorial >WordPress参数传递及路由规则

WordPress参数传递及路由规则

WBOY
WBOYOriginal
2016-06-06 20:24:592438browse

1.WordPress参数怎么传递,不使用?xx=xx的方式。

<code>function add_query_vars($aVars) {
$aVars[] = "msds_pif_cat"; // represents the name of the product category as shown in the URL
return $aVars;
}
 
// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');

function add_rewrite_rules($aRules) {
$aNewRules = array('msds-pif/([^/]+)/?$' => 'index.php?pagename=msds-pif&msds_pif_cat=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
 
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules');</code>

查到相关函数但是没有搞懂,大家可不可以帮帮我。

原文

还有就是WordPress的钩子机制是怎么一回事。

回复内容:

1.WordPress参数怎么传递,不使用?xx=xx的方式。

<code>function add_query_vars($aVars) {
$aVars[] = "msds_pif_cat"; // represents the name of the product category as shown in the URL
return $aVars;
}
 
// hook add_query_vars function into query_vars
add_filter('query_vars', 'add_query_vars');

function add_rewrite_rules($aRules) {
$aNewRules = array('msds-pif/([^/]+)/?$' => 'index.php?pagename=msds-pif&msds_pif_cat=$matches[1]');
$aRules = $aNewRules + $aRules;
return $aRules;
}
 
// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules');</code>

查到相关函数但是没有搞懂,大家可不可以帮帮我。

原文

还有就是WordPress的钩子机制是怎么一回事。

路由规则比如:

<code>add_rewrite_rule( 'haha/([A-Za-z0-9]{1,})/?$','index.php?page_id=8&myname=$matches[1]', 'top' );</code>

这样url www.xx.com/haha/tuntun ,实际上就会访问 /index.php?page_id=8&myname=tuntun

但是这样的通过$_GET['myname']是得不到你想要的值的,如果想通过$_GET['myname']得到值,需要:

<code>//add query_args
function add_query_vars($aVars) {
    $aVars[] = 'myname';
    return $aVars;
}
add_filter('query_vars', 'add_query_vars');</code>

这就是你说的参数传递。但有的参数是系统默认自带的,不需要额外添加。

关于钩子机制,一句话说不清楚,网上很多教程。

参考:
http://www.tantengvip.com/2013/11/wordpress-route/
http://www.tantengvip.com/2015/01/add_rewrite_tag_rule/

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn