Home >Backend Development >PHP Tutorial >Code example of wordpress custom url parameters to implement routing function_PHP tutorial

Code example of wordpress custom url parameters to implement routing function_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:17:491060browse

After two days of learning regular expressions and studying the routing function of WordPress, I successfully implemented the custom WordPress routing function. The following is the implementation of routing rules.
If there are custom url parameters, to be passed through routing, the parameters must be added through the wordpress function:

Copy code The code is as follows:

//add query_args
function add_query_vars($aVars) {
$ aVars[] = 'score';
$aVars[] = 'type'; // represents the name of the product category as shown in the URL
return $aVars;
}
add_filter( 'query_vars', 'add_query_vars');//wordpress filter

At the same time, you also need to use the wordpress function to obtain the parameters on the page:

Copy code The code is as follows:

$type=isset($wp_query->query_vars['type'])? urldecode($wp_query->query_vars['type']):'';

Copy code The code is as follows:

//Routing rules - sorting based on time and the latest entries in each category
function add_rewrite_rules($aRules) {
$aNewRules = array(
) 'text/([^latest][^/]+)/?(/page/([0-9]+)?)?/? $' => 'index.php?cat=2&score=$matches[1]&paged=$matches[3]',
      'image/([^latest][^/]+)/?(/page /([0-9]+)?)?/?$'=>'index.php?cat=3&score=$matches[1]&paged=$matches[3]',
'video/([ ^latest][^/]+)/?(/page/([0-9]+)?)?/?$'=>'index.php?cat=4&score=$matches[1]&paged=$ matches[3]',
'resource/([^latest][^/]+)/?(/page/([0-9]+)?)?/?$'=>'index. php?cat=5&score=$matches[1]&paged=$matches[3]',
'text/(latest)/?(/page/([0-9]+)?)?/?$' =>'index.php?cat=2&type=$matches[1]&paged=$matches[3]',
'image/(latest)/?(/page/([0-9]+)? )?/?$'=>'index.php?cat=3&type=$matches[1]&paged=$matches[3]',
       'video/(latest)/?(/page/([0 -9]+)?)?/?$'=>'index.php?cat=4&type=$matches[1]&paged=$matches[3]',
       'resource/(latest)/?$ '=>'index.php?cat=5&type=$matches[1]',
'(month)/?(/page/([0-9]+)?)?/?$'=> ;'index.php?score=$matches[1]&paged=$matches[3]',
'(24hr)/?(/page/([0-9]+)?)?/?$' =>'index.php?score=$matches[1]&paged=$matches[3]',
);
$aRules = $aNewRules + $aRules;
return $aRules;
}
add_filter('rewrite_rules_array', 'add_rewrite_rules');

Copy code The code is as follows:

//Routing Rules - Category
add_rewrite_rule('^text/?(/ page/([0-9]+)?)?/?$','index.php?cat=2&paged=$matches[2]','top'); //Corresponding category ID
add_rewrite_rule( '^image/?(/page/([0-9]+)?)?/?$','index.php?cat=3&paged=$matches[2]','top');
add_rewrite_rule ('^video/?(/page/([0-9]+)?)?/?$','index.php?cat=4&paged=$matches[2]','top');
add_rewrite_rule('^resource/?(/page/([0-9]+)?)?/?$','index.php?cat=5&paged=$matches[2]','top');

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/621710.htmlTechArticleAfter two days of learning regular expressions and studying wordpress routing functions, I successfully implemented custom wordpress routing Function, the following is the implementation of routing rules. If there is a custom...
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