国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > cms教程

WordPress功能函數(shù)add_rewrite_rule()

cms教程 2022-10-26 09:23:39

wordpress功能函數(shù)add_rewrite_rule(),添加一個重寫規(guī)則,該規(guī)則將URL結(jié)構(gòu)轉(zhuǎn)換為一組查詢變量。

用法:

add_rewrite_rule( string $regex, string|array $query, string $after = 'bottom' )

描述

$after參數(shù)中任何不是' bottom '的值都將導(dǎo)致該規(guī)則被放置在重寫規(guī)則的頂部。

參數(shù)

$regex

(string) (必需) 要匹配請求的正則表達式。

$query

(string|array) (必需) 這個重寫規(guī)則的相應(yīng)查詢是不同的。

$after

(string) (可選) 新規(guī)則的優(yōu)先級。接受'top'或'bottom'。

默認值: 'bottom'

更多信息

add_rewrite_rule()允許你為WordPress指定額外的重寫規(guī)則。它最常與add_rewrite_tag()一起使用(它允許WordPress識別自定義post/get變量)。

來源:

文件: wp-includes/rewrite.php

function add_rewrite_rule( $regex, $query, $after = 'bottom' ) {

global $wp_rewrite;

$wp_rewrite->add_rule( $regex, $query, $after );

}

更新日志:
WordPress功能函數(shù)add_rewrite_rule() (https://www.wpzt.net/) WordPress開發(fā)教程 第1張
用戶貢獻的筆記

(由安東尼艾登貢獻- 1年前)

下面是一個簡單的例子,說明如何注冊一個新的重寫規(guī)則,并將其傳遞給PHP文件進行渲染:

1. 設(shè)置一個規(guī)則:

add_action( 'init', function() {

add_rewrite_rule( 'myparamname/([a-z0-9-]+)[/]?$', 'index.php?myparamname=$matches[1]', 'top' );

} );

2. 沖洗永久鏈接。轉(zhuǎn)到WP Admin >設(shè)置>永久鏈接>保存。這不會在您添加此代碼后自動發(fā)生

3.白名單查詢參數(shù):

add_filter( 'query_vars', function( $query_vars ) {

$query_vars[] = 'myparamname';

return $query_vars;

} );

4. 添加一個處理程序?qū)⑵浒l(fā)送到模板文件:

add_action( 'template_include', function( $template ) {

if ( get_query_var( 'myparamname' ) == false || get_query_var( 'myparamname' ) == '' ) {

return $template;

}

return get_template_directory() . '/template-name.php';

} );

(由tomasdev貢獻- 4年前)

WP Codex網(wǎng)站上的內(nèi)容,因為任何原因沒有被遷移。

注意:當(dāng)使用$matches[]檢索匹配URL的值時,捕獲組數(shù)據(jù)從1開始,而不是0。

重要提示:不要忘記在修改規(guī)則后刷新和重新生成重寫規(guī)則數(shù)據(jù)庫。從WordPress管理屏幕,選擇設(shè)置->永久鏈接,只需點擊保存更改,無需任何更改。

(由Samuel Elh貢獻- 5年前)

一個簡單的例子:處理規(guī)則來創(chuàng)建一個訂閱者頁面,希望它能有所幫助。

add_action('init', function() {

$page_id = 2; // update 2 (sample page) to your custom page ID where you can get the subscriber(s) data later

$page_data = get_post( $page_id );

if( ! is_object($page_data) ) { // post not there

return;

}

add_rewrite_rule(

$page_data->post_name . '/subscriber/([^/]+)/?$',

'index.php?pagename=' . $page_data->post_name . '&my_subscribers=1&my_subscriber=$matches[1]',

'top'

);

});

現(xiàn)在在你的頁面模板中(如果你有一個模板,或者在過濾這個自定義頁面的內(nèi)容時),你可以通過調(diào)用get_query_var('my_subscriber')來獲得顯示的訂閱者片段,但是首先,將'my_subscriber'傳遞給查詢變量:

add_filter('query_vars', function($vars) {

$vars[] = "my_subscriber";

return $vars;

});

(由iqbalbary貢獻- 3年前)

添加重寫規(guī)則查詢?yōu)榭蛇x查詢,希望對您有所幫助。

function custom_rewrite_rule() {

add_rewrite_rule('^nutrition/?([^/]*)/?','index.php?page_id=12&food=$matches[1]','top');

}

add_action('init', 'custom_rewrite_rule', 10, 0);

這里的主要內(nèi)容是補充?在正則表達式的開頭。像什么? ([^ /]*)

現(xiàn)在,您可以在將使用查詢的地方為可選查詢設(shè)置默認值。

$food = $wp_query->get( 'food' );

if( isset($food) && !empty($food) ) {

$nutrition = $food;

}else{

$nutrition = 'strawberry'; //default value

}

現(xiàn)在,對于http://example.com/nutrition/strawberry或http://example.com/nutrition/,您將得到相同的結(jié)果

(由立花明- 4個月前貢獻)

(從法典)

使用自定義模板與自定義querystring

讓我們假設(shè)您正在創(chuàng)建一個“營養(yǎng)”頁面來顯示營養(yǎng)信息。這個頁面使用了一個自定義模板,并使用了兩個變量:food和variety。在你的主題根目錄下創(chuàng)建一個名為my-custom-template.php的文件,如下所示:

/**

* Template Name: Nutritional Information

*/

get_header();

global $wp_query;

echo 'Food : ' . $wp_query->query_vars['food'];

echo '
';

echo 'Variety : ' . $wp_query->query_vars['variety'];

// ... more ...

get_footer();

使用這個模板,創(chuàng)建一個頁面。在添加新頁面的屏幕上,從模板下拉框中選擇“營養(yǎng)信息”。您可以為標(biāo)題或內(nèi)容留空。單擊“發(fā)布”以發(fā)布該頁。從“所有頁面”屏幕中寫下創(chuàng)建頁面的ID。將鼠標(biāo)光標(biāo)移動到頁面標(biāo)題上,可以在Web瀏覽器的狀態(tài)欄中顯示鏈接信息。您將看到URL中POST=后面的ID。在本例中,假設(shè)ID為12。

使用add_rewrite_tag()讓W(xué)ordPress知道自定義的查詢字符串變量food和variety。將以下代碼添加到functions.php文件中,

function custom_rewrite_tag() {

add_rewrite_tag('%food%', '([^&]+)');

add_rewrite_tag('%variety%', '([^&]+)');

}

add_action('init', 'custom_rewrite_tag', 10, 0);

您可以調(diào)用頁面如下:

http://example.com/index.php?page_id=12&food=milkshake&variety=strawberry

該頁面將顯示由querystring變量傳遞的兩個值。

現(xiàn)在,不必向頁面?zhèn)鬟f丑陋的querystring變量,您可以設(shè)置重寫規(guī)則來創(chuàng)建一些定制的漂亮url。向functions.php文件添加以下規(guī)則,并將頁面ID 12替換為您在上述步驟中研究的ID。不要忘記點擊保存更改在永久鏈接設(shè)置。(參考以上重要)

function custom_rewrite_rule() {

add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','index.php?page_id=12&food=$matches[1]&variety=$matches[2]','top');

}

add_action('init', 'custom_rewrite_rule', 10, 0);

用戶可以訪問相同的頁面與以下URL:

http://example.com/nutrition/milkshakes/strawberry/

(由立花明- 4個月前貢獻)

(從法典)

基本用法

你可以檢索任何頁面通過指定ID在URL如下:

http://example.com/?p=95

如果向functions.php文件添加以下規(guī)則,就可以提供自定義的URL來訪問。

function custom_rewrite_basic() {

add_rewrite_rule('^leaf/([0-9]+)/?', 'index.php?page_id=$matches[1]', 'top');

}

add_action('init', 'custom_rewrite_basic');

注意:當(dāng)使用$matches[]檢索匹配URL的值時,捕獲組數(shù)據(jù)從1開始,而不是0。

重要提示:不要忘記在修改規(guī)則后刷新和重新生成重寫規(guī)則數(shù)據(jù)庫。從WordPress管理屏幕,選擇設(shè)置->永久鏈接,只需點擊保存更改,無需任何更改。

現(xiàn)在,您可以訪問與

http://example.com/leaf/95

(由立花明- 4個月前貢獻)

(從法典)

使用重寫規(guī)則重定向到index.php以外的腳本

當(dāng)重定向到自定義PHP腳本時,$redirect參數(shù)的工作方式略有不同,因為WordPress將這些重定向委托給.htaccess,而不是自己處理它們。因此,查詢字符串變量應(yīng)該寫成$1,而不是$matches[1]。假設(shè)我們重定向到一個自定義PHP腳本,從我們前面的例子中添加相同的重寫規(guī)則如下所示:

function custom_rewrite_rule() {

add_rewrite_rule('^nutrition/([^/]*)/([^/]*)/?','url/to/my/script.php?food=$1&variety=$2','top');

}

add_action('init', 'custom_rewrite_rule', 10, 0);

(由Md Aminur Islam貢獻- 2個月前)

用可選參數(shù)重寫規(guī)則。

// siteurl.com/wpdocs-product-category/edit-product-category/43 for edit product category

add_rewrite_rule(

'^wpdocs-product-category/([^/]*)/([^/]*)/?',

'index.php?pagename=wpdocs-product-category&wpdocs-pro-category-action=$matches[1]&wpdocs-product-cat-id=$matches[2]',

'top'

);

// Product Category Add Page

// siteurl.com/wpdocs-product-category/add-product-category for add product category

add_rewrite_rule(

'^wpdocs-product-category/([^/]*)/?',

'index.php?pagename=wpdocs-product-category&wpdocs-pro-category-action=$matches[1]',

'top'

);

在處理之前過濾允許的查詢變量。

add_filter( 'query_vars', function( $vars ) {

$vars[] = 'wpdocs-pro-category-action';

$vars[] = 'wpdocs-product-cat-id';

$vars[] = 'wpdocs-category-action';

return $vars;

} );

檢索查詢參數(shù)值

$pro_category_action = get_query_var( 'wpdocs-pro-category-action' );

$product_cat_id = get_query_var( 'wpdocs-product-cat-id' );

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護,版權(quán)登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5