簡體   English   中英

在WordPress安裝中對查詢字符串進行Mod_Rewrite

[英]Mod_Rewrite on Query String in WordPress installation

我正在嘗試創建一個簡單的預訂表格。 單獨頁面上有四個選項(組,公司,學生和場所)。

例如:如果用戶單擊立即預訂以獲取組體驗,則應將其帶到包含查詢字符串“組體驗”的表單的動態頁面。 該查詢字符串將用於主題字段的值。

現在的問題是,這就是我現在所擁有的:

網址: / book /?menu = group-experience
主題字段: “小組體驗”。

我想要:

網址: / book / group-experience
主題字段: “小組體驗”

我知道了,所以用以下命令刪除了“-”:

<?php
$ menu = str_replace(“-”,“”,$ _GET ['menu']);
?>

我到處都是Stackoverflow和其他網站,但是找不到與WordPress搭配使用的方法-表單位於模板文件中。

我當前的.htaccess:

<IfModule mod_rewrite.c>
RewriteEngine開
RewriteBase / lab / foodfiendexp /
RewriteRule ^ index.php $-[L]
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
RewriteRule。 /lab/foodfiendexp/index.php [L]
</ IfModule>

您必須添加頁面重寫規則,以將以下代碼添加到functions.php中

add_filter( 'page_rewrite_rules', 'book_page_rewrite_rules' );
function book_page_rewrite_rules( $rewrite_rules )
{
    end( $rewrite_rules );
    $last_pattern = key( $rewrite_rules );
    $last_replacement = array_pop( $rewrite_rules );
    $rewrite_rules +=  array(
        '(.+?)/([^/]+)/?$' => 'index.php?pagename=$matches[1]&menu=$matches[2]',
        $last_pattern => $last_replacement,
    );
    return $rewrite_rules;
}

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

然后從設置->永久鏈接更新永久鏈接結構,您只需再次點擊保存即可。

然后您可以使用

$menu = get_query_var('menu');

現在您的網址應該與

/book/group-experience 

考慮到書是一頁,如果您需要在帖子中添加重寫規則,請將其更改為帖子重寫規則

此處有更多詳細信息: http : //codex.wordpress.org/Rewrite_API/add_rewrite_rule

另外,如果您需要重寫規則檢查器,則此插件非常好: http : //wordpress.org/plugins/monkeyman-rewrite-analyzer/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM