代码之家  ›  专栏  ›  技术社区  ›  quarky

更改WooCommerce存档产品页面上的分页基础段塞

  •  0
  • quarky  · 技术社区  · 3 年前

    我想在WooCommerce存档页面上将分页段塞,当前为“page”更改为“strana”。

    URL的默认设置 http://localhost/obchod/ http://localhost/obchod/page/2/ 工作良好。 当我更改分页基础并重新保存永久链接时,它不起作用。 最终url应该如下所示: http://localhost/obchod/strana/2/

    这是我更改分页基础的代码:

    function custom_rewrite_rules() {
      global $wp_rewrite;
      $wp_rewrite->pagination_base = 'strana';
    }
    add_action('init', 'custom_rewrite_rules');
    

    我总是在WordPress上重新保存永久链接,或者我使用 $wp_rewrite->flush_rules(); ,但不是这些作品。

    请注意,此代码适用于WordPress分页,但是 不适用于WooCommerce分页商店页面 .

    我做错了什么?

    0 回复  |  直到 3 年前
        1
  •  0
  •   Orbital    3 年前

    首先,我们需要更改Wordpress生成的链接的格式。由于我们只需要更改商店存档的分页格式,因此我们添加了一个条件标记is_shop(),因此另一个分页将保持旧格式。

    function custom_rewrite_rules() {
    global $wp_rewrite;
    if(is_shop()) {
    $wp_rewrite->pagination_base = 'strana';
    }
    }
    add_action('template_redirect', 'custom_rewrite_rules');
    

    接下来,我们添加_rewrite_rule(),使Wordpress了解分页页面的新链接格式

    add_rewrite_rule(
    '^obchod/strana/([^/]+)/?',
    'index.php?paged=$matches[1]',
    'top'
    ); 
    

    obchod here=您的店铺基础,默认其店铺为wooccommerce店铺

    测试更新

    function custom_rewrite_rules() {
    global $wp_rewrite;
    $wp_rewrite->pagination_base = 'strana';
    
    }
    add_action('init', 'custom_rewrite_rules');
    
    add_rewrite_rule(
    '^obchod/strana/([^/]+)/?',
    'index.php?paged=$matches[1]&post_type=product',
    'top'
    );