从查询中忽略 woocommerce 页面
Ignore woocommerce pages from query
我的页面标准查询如下。
$type = 'page';
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 50,
'ignore_sticky_posts'=> 1,
);
当我在一个页面中列出所有页面时,如何忽略 woocommerce 创建的页面,如我的帐户、购物车、商店...?
您可以使用 wordpress wp_list_pages
显示所有页面。 wp_list_pages
有 exclude
个参数。
因此,借助 参数,您可以排除 woocommerce.
的所有页面
<?php
global $woocommerce;
$cart_url = $woocommerce->cart->get_cart_url(); //To get Cart URL
$cart_id = url_to_postid( $cart_url ); //Convert that cart URL in to an ID
$checkout_url = $woocommerce->cart->get_checkout_url(); //To get Checkout URL
$checkout_id = url_to_postid( $checkout_url ); //Convert that Checkout URL in to an ID
$shop_page_id = woocommerce_get_page_id( 'shop' ); //Get an ID of shop page
$myaccount_page_id = get_option( 'woocommerce_myaccount_page_id' ); //Get an ID of My account page
wp_list_pages('exclude='.$shop_page_id.','.$myaccount_page_id.','.$cart_id.','.$checkout_id.''); //To list all the pages
?>
所以借助上面的代码,你可以打印所有页面,同时你可以忽略 woocommerce 页面。
如有任何疑问,请告诉我。
首先获取 woocommerce 页面 ID's
if(class_exists('WooCommerce')){
$woopages = array(get_option( 'woocommerce_shop_page_id' ),get_option( 'woocommerce_cart_page_id' ),get_option( 'woocommerce_checkout_page_id' ),get_option( 'woocommerce_pay_page_id' ),get_option( 'woocommerce_thanks_page_id' ),get_option( 'woocommerce_myaccount_page_id' ),get_option( 'woocommerce_edit_address_page_id' ),get_option( 'woocommerce_view_order_page_id' ),get_option( 'woocommerce_terms_page_id' ));
}
之后使用这样的查询
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 50,
'post__not_in' => $woopages,
'ignore_sticky_posts'=> 1,
);
就这些了!
我的页面标准查询如下。
$type = 'page';
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 50,
'ignore_sticky_posts'=> 1,
);
当我在一个页面中列出所有页面时,如何忽略 woocommerce 创建的页面,如我的帐户、购物车、商店...?
您可以使用 wordpress wp_list_pages
显示所有页面。 wp_list_pages
有 exclude
个参数。
因此,借助 参数,您可以排除 woocommerce.
的所有页面<?php
global $woocommerce;
$cart_url = $woocommerce->cart->get_cart_url(); //To get Cart URL
$cart_id = url_to_postid( $cart_url ); //Convert that cart URL in to an ID
$checkout_url = $woocommerce->cart->get_checkout_url(); //To get Checkout URL
$checkout_id = url_to_postid( $checkout_url ); //Convert that Checkout URL in to an ID
$shop_page_id = woocommerce_get_page_id( 'shop' ); //Get an ID of shop page
$myaccount_page_id = get_option( 'woocommerce_myaccount_page_id' ); //Get an ID of My account page
wp_list_pages('exclude='.$shop_page_id.','.$myaccount_page_id.','.$cart_id.','.$checkout_id.''); //To list all the pages
?>
所以借助上面的代码,你可以打印所有页面,同时你可以忽略 woocommerce 页面。
如有任何疑问,请告诉我。
首先获取 woocommerce 页面 ID's
if(class_exists('WooCommerce')){
$woopages = array(get_option( 'woocommerce_shop_page_id' ),get_option( 'woocommerce_cart_page_id' ),get_option( 'woocommerce_checkout_page_id' ),get_option( 'woocommerce_pay_page_id' ),get_option( 'woocommerce_thanks_page_id' ),get_option( 'woocommerce_myaccount_page_id' ),get_option( 'woocommerce_edit_address_page_id' ),get_option( 'woocommerce_view_order_page_id' ),get_option( 'woocommerce_terms_page_id' ));
}
之后使用这样的查询
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 50,
'post__not_in' => $woopages,
'ignore_sticky_posts'=> 1,
);
就这些了!