我一直在尝试使用以下代码为商店页面添加端点:
add_action( 'init', 'add_city_endpoint' );
function add_city_endpoint() {
add_rewrite_endpoint( 'city', EP_PAGES );
}
在网址类似的情况下过滤产品: / shop / city / new-york /
但是我没有产品的页面。
我怎样才能让它发挥作用?
答案 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'
);
}