> 백엔드 개발 > PHP 튜토리얼 > WordPress参数传递及路由规则

WordPress参数传递及路由规则

WBOY
풀어 주다: 2016-06-06 20:24:59
원래의
2425명이 탐색했습니다.

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/

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿