簡體   English   中英

不使用 htaccess 在 wordpress 中重寫 URL

[英]URL rewriting in wordpress not using htaccess

我正在嘗試在 wordpress 中重寫 URL。

結構是/car/123/bmw-series-A其中 pagename 是car , carID 是123並且 modelName 是bmw-series-A

有一個自定義模板,我將在其中獲取 carID 和 modelName

我有以下代碼

函數.php

function add_rewrite_rules($aRules) {
    $aNewRules = array('car/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]');
    $aRules = $aNewRules + $aRules;
    return $aRules;
}

// hook add_rewrite_rules function into rewrite_rules_array
add_filter('rewrite_rules_array', 'add_rewrite_rules');


function prefix_register_query_var( $vars ) {
    $vars[] = 'carID';
    $vars[] = 'modelName';
    return $vars;
}
 
add_filter( 'query_vars', 'prefix_register_query_var' );

當我嘗試添加 modelName 時,我在自定義模板中獲得了 carID 而不是 modelName,它會轉到 404 頁面。

代碼 -

$aNewRules = array('car/([^/]+)/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]&modelName=$matches[2]');

任何幫助都受到高度贊賞。 提前致謝。

您需要為兩條路徑制定規則...更新add_rewrite_rules如下所示:

function add_rewrite_rules($aRules)
{
  // id rule
  $aNewRules = array('car/([^/]+)/?$' => 'index.php?pagename=car&carID=$matches[1]');

  // model rule
  $bNewRules = array('car/([\w+]*)/([\w+]*)/?$' => 'index.php?pagename=car&carID=$matches[1]&modelName=$matches[2]');

  $aRules = $aNewRules + $bNewRules + $aRules;

  return $aRules;
}

暫無
暫無

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

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