想添加一個重寫規則來改變這個:
/compare/?items=test1,test2
進入這個
/compare/test1-vs-test2
此外,最多可以有 4 個專案發送到 URL,因此結果將是
/compare/test1-vs-test2-vs-test3-vs-test4
這可以使用https://developer.wordpress.org/reference/functions/add_rewrite_rule/來實作嗎?
或者我應該直接在.htaccess 中添加一些條件?任何幫助,將不勝感激。謝謝你。
uj5u.com熱心網友回復:
- 添加
items
查詢變數
function compare_query_vars( $qvars ) {
$qvars[] = 'items';
return $qvars;
}
add_filter( 'query_vars', 'compare_query_vars' );
- 回圈查詢將如下所示:
$items = get_query_var( 'items');
$items = explode('-vs-',$items);
$the_query = new WP_Query( [ 'post_name__in' => $items ] );
結果:/?items=test1-vs-test2
注意:當您構建初始 url 時,請確保您發送的是帖子的 slug 而不是 ID
- 最后是 URL 重寫
add_action( 'init', function() {
add_rewrite_rule( '^compare/([a-z0-9-] )[/]?$', 'index.php?page_id=37&items=$matches[1]', 'top' );
} );
注意:page_id 應該是您正在創建回圈的頁面的 ID
- 通過轉到“設定”->“永久鏈接”來重繪 永久鏈接,然后保存頁面。
- 訪問所需的 URL /compare/test1-vs-test2
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495765.html