add_rewrite_rule() 関数を使用して Wordpress に適切な値を変数に割り当てるのに問題があります。私の目標は、次のような URL を持つことですwww.mywebsite.com/catalog/category1/category2/item-slug
。
functions.php ファイルからの私のコードは次のとおりです。
add_filter( 'query_vars', 'query_vars_new' );
function query_vars_new($query_vars){
$query_vars[]='category1';
$query_vars[]='category2';
$query_vars[]='catalog_item';
return $query_vars;
}
add_action( 'init', 'rewrite_init' );
function rewrite_init(){
add_rewrite_rule('catalog(/([^/]+))?(/([^/]+))?/?','index.php?page_id=94&category1=$matches[1]&category2=$matches[2]&catalog_item=$matches[3]','top');
}
したがって、目標は、3 つの変数$category1
、$category2
、および$catalog_item
対応する URL セグメントの値を持つことです。ただし、これをテストすると、最初の 2 つの変数が同じ値に設定されます。
たとえば、次www.mywebsite.com/catalog/clothes/shirts/polo-shirt
を返す必要があります。
$category1="clothes";
$category2="shirts";
$catalog_item="polo-shirt";
しかし、代わりに私は得る:
$category1="/clothes";
$category2="clothes";
$catalog_item="/polo-shirt";
add_rewrite_rule 関数に問題があるはずですが、わかりません。