WooCommerce Shop Page Endpoint。没有产品

时间:2017-04-13 09:49:18

标签: php wordpress woocommerce

我一直在尝试使用以下代码为商店页面添加端点:

add_action( 'init', 'add_city_endpoint' );
function add_city_endpoint() {
    add_rewrite_endpoint( 'city', EP_PAGES );
}

在网址类似的情况下过滤产品: / shop / city / new-york /

但是我没有产品的页面。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

好的,我会回答我自己的问题。

由于商店页面不是真正的wordpress页面,而是" product"的商店页面。帖子类型,端点不适合我的目的。正确的方法是使用add_rewrite_rule:

add_action( 'init', 'city_add_rewrite_rules' );
function city_add_rewrite_rules() {

    $shop_page = ( $shop_page_id = wc_get_page_id( 'shop' ) ) && get_post( $shop_page_id ) ? get_page_uri( $shop_page_id ) : 'shop';

    add_rewrite_tag( '%sr_city%', '([^&]+)' );
    add_rewrite_rule(
            "^$shop_page/city/([^/]+)/?$", 'index.php?post_type=product&sr_city=$matches[1]', 'top'
    );
    //pagination
    add_rewrite_rule(
            "^$shop_page/city/([^/]+)/page/([0-9]+)?$", 'index.php?post_type=product&sr_city=$matches[1]&paged=$matches[2]', 'top'
    );

}