簡體   English   中英

在 Wordpress 上為多個項目重寫 url 條件

[英]Rewrite url condition on Wordpress for multiple items

想添加一個重寫規則來改變這個:

/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 中添加一些條件? 任何幫助,將不勝感激。 謝謝你。

  1. 添加items查詢變量
    function compare_query_vars( $qvars ) {
        $qvars[] = 'items';
        return $qvars;
    }
    add_filter( 'query_vars', 'compare_query_vars' );
  1. 循環查詢將如下所示:
    $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

  1. 最后是 URL 重寫
    add_action( 'init',  function() {
        add_rewrite_rule( '^compare/([a-z0-9-]+)[/]?$', 'index.php?page_id=37&items=$matches[1]', 'top' );
    } );

注意page_id 應該是您正在創建循環的頁面的 ID

  1. 通過轉到“設置”->“永久鏈接”來刷新永久鏈接,然后保存頁面。
  2. 訪問所需的 URL /compare/test1-vs-test2

暫無
暫無

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

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