当我过滤页面的别名时,在WordPress函数中出现错误
                
                    
                          
                        
                            
                                P粉946336138
                                2023-08-17 17:30:15
                            
                                                        [PHP讨论组]
                                                     
                     
                    
                 
             
            
            
                <p>这在商店页面上可以正常工作,但在其他页面上会抛出错误。</p>
<p>这与 if(is_page('shop')) 有关。</p>
<p><br /></p>
<pre class="brush:html;toolbar:false;">function divi_engine_body_class( $classes ) {
   if(is_page('shop')) {
        $classes[] = 'woocommerce-page-SGARAGLINO';
        return $classes;
    }
}
add_filter( 'body_class','divi_engine_body_class',99999);</pre>
<p><br /></p>
<p>错误信息:PHP致命错误:Uncaught TypeError:array_unique():参数#1($array)必须是数组类型,在/wordpress/core/6.2.2/wp-includes/post-template.php:861处给出了null。</p>            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
         
        
        
     
如果
is_shop()为真,该函数只返回$classes变量,而实际上它应该始终返回$classes变量:function divi_engine_body_class( $classes ) { if ( is_page( 'shop' ) ) { $classes[] = 'woocommerce-page-SGARAGLINO'; } return $classes; }过滤器必须始终返回一个值;如果不返回值,几乎总会引发错误。