WooCommerce如何检查functions.php中的页面is_shop()?

时间:2016-05-20 15:46:29

标签: php wordpress woocommerce

在WooCommerce 中,我的类别列表页面和产品列表页面是从archieve-product.php(默认情况下)呈现的。如何检查 functions.php 中的页面 is_shop()?因为is_shop函数在functions.php中不起作用。我只是想从产品详情页面中删除我的侧边栏<类别列表页面。

4 个答案:

答案 0 :(得分:3)

当放在钩子中时,is_shop将在functions.php

中起作用
add_action( 'template_redirect', 'custom_template_redirect' );

function custom_template_redirect() {

    if( is_shop() ) :

         // code logic here

    endif;    
}

以下是所有WooCommerce conditionals

的列表

答案 1 :(得分:1)

您可以使用function_exists

if( function_exists("is_shop") ) {
    // call it or do something else
}
else {
    // load it from somewhere
}

官方文档:https://secure.php.net/function_exists

答案 2 :(得分:1)

您可以为类别页面的“archive-product.php”写一个条件,例如,

    $cate = get_queried_object();
    if(is_product_category()  && $cate->parent != 0 ){

         // Write code here
         //include sidebar here
    }

通过使用此代码,这将检查product_category的页面并检查父代。

答案 3 :(得分:0)

使用WordPress Hook预先获取帖子进行调用

add_action('pre_get_posts','nameTheFunction');

function nameTheFunction(){

   if(is_shop()){

    // your code here 

  }

}// function end here

阅读有关挂钩前的更多信息

https://developer.wordpress.org/reference/hooks/pre_get_posts/