1
我寫了WordPress的重寫規則,但它不能返回匹配[1]:WordPress的add_rewrite_rule不能進去匹配[1]
add_rewrite_rule('stage/shop/([^/]+)/?', "index.php?category_name=$matches[1]", 'top');
但是,當我嘗試在純PHP它返回的權利事情:
preg_match_all('#stage/shop/([^/]+)/?#','stage/shop/audio-and-video-equipment/',$matches);
var_dump($matches[1]);
這是我的完整代碼:
add_action('init', 'wpst_init_internal');
function wpst_init_internal()
{
add_rewrite_rule('stage/shop/([^/]+)/?', "index.php?category_name=$matches[1]", 'top');
}
add_filter('query_vars', 'wpst_query_vars');
function wpst_query_vars($query_vars)
{
$query_vars[] = 'category_name';
return $query_vars;
}
有我的代碼什麼問題?
更新:
在我的查詢,CATEGORY_NAME必須返回匹配[1]但是這回什麼。這是我的轉儲:
["category_name"]=>
string(0) ""
add_rewrite_rule()不返回任何東西。在wordpress文檔中沒有列出它將返回匹配。它用於添加基於url的重寫規則。爲此,您可以使用您描述的preg_match_all。 – siddhesh
@siddhesh我知道,我編輯並更新我的問題以獲得更好的解釋。 – Nulled
您是否嘗試過此操作重要提示:修改規則後,請不要忘記刷新並重新生成重寫規則數據庫。從WordPress管理屏幕,選擇設置 - >永久鏈接,只需點擊保存更改,不做任何更改。 – siddhesh