WooCommerce 商店页面端点。无产品
2017-04-13
348
我一直尝试使用此代码为商店页面添加一个端点:
add_action( 'init', 'add_city_endpoint' );
function add_city_endpoint() {
add_rewrite_endpoint( 'city', EP_PAGES );
}
以便在 URL 为如下内容时过滤产品: /shop/city/new-york/
但我得到的页面没有产品。
我怎样才能让它工作?
1个回答
好吧,我会回答我自己的问题。
由于商店页面不是实际的 wordpress 页面,而是“产品”帖子类型的存档页面,因此端点不适合我的目的。正确的方法是改用 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'
);
}
c00x
2017-04-18