WooCommerce Conditional Tags 详解

优质
小牛编辑
131浏览
2023-12-01

WooCommerce Conditional Tags和WordPress的条件标签类似,可以帮助判断当前是否在WooCommerce相关的页面上。本文介绍每个标签的具体含义,以及使用时的注意事项。

is_shop()

满足条件is_post_type_archive( 'product' )或is_page( woocommerce_get_page_id( 'shop' ) )时为真。

使用默认的permalink设置时,shop页不是后台设置的那个,而是product的archive页面,product是custom post type,其archive页面的判断为is_post_type_archive( 'product' )。

is_product()

是否为单独的产品页面,相当于is_singular( array( 'product' ) )。

is_product_category()

是否为产品分类页面,产品分类其实是custom taxonomy,相当于is_tax( 'product_cat' );

若指定详细参数,还可判断具体在哪个分类,比如

is_product_tag( 'shirts' )

相当于is_tax( 'product_cat', $term )

is_product_tag()

与is_product_category()相似,判断是否在产品tag页面,相当于is_tax( 'product_tag', $term )。

is_woocommerce()

相当于is_shop() || is_product_category() || is_product_tag() || is_product()。

即当位于shop首页、产品分类或tag页,或者单独的产品页时,均为真。

is_cart()

是否是购物车页面,相当于is_page( woocommerce_get_page_id( 'cart' ) )。

is_checkout()

是否在结账页面,相当于is_page( woocommerce_get_page_id( 'checkout' ) ) || is_page( woocommerce_get_page_id( 'pay' ) )

is_account_page()

当位于My Account、Edit Address、View Order或Change Password时为真。

通过Filter:woocommerce_is_account_page,可以将其他页面也设置成account页面。

is_ajax()

内容通过Ajax方式载入时为真。

何时可以使用

使用条件标签时要注意使用的位置,WooCommerce的条件标签只在主查询完成后生效,所以最早可以使用这些标签的action是wp

wp之后还有那些actions,可以参考http://codex.wordpress.org/Plugin_API/Action_Reference