首页  >  问答  >  正文

当我过滤页面的别名时,在WordPress函数中出现错误

<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>
P粉946336138P粉946336138399 天前421

全部回复(1)我来回复

  • P粉269530053

    P粉2695300532023-08-18 14:05:48

    如果is_shop()为真,该函数只返回$classes变量,而实际上它应该始终返回$classes变量:

    function divi_engine_body_class( $classes ) {
       if ( is_page( 'shop' ) ) {
            $classes[] = 'woocommerce-page-SGARAGLINO';
        }
    
        return $classes;
    }
    

    过滤器必须始终返回一个值;如果不返回值,几乎总会引发错误。

    回复
    0
  • 取消回复