首頁  >  問答  >  主體

當我過濾頁面的別名時,在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粉946336138449 天前460

全部回覆(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
  • 取消回覆