多くの人に表示されるPHPエラー WordPress Plugins 長い間更新されていないか、PHPの新しいバージョンと互換性がありません。 PHP警告:sizeof():パラメーターは、可算を実装する配列またはオブジェクトでなければなりません。
コンテンツ
私たちのシナリオでは、PHPエラーがモジュールに表示されました Cross Sell Product Display woocommerceの場合。
FastCGI sent in stderr: "PHP message: PHP Warning: sizeof(): Parameter must be an array or an object that implements Countable in /web/path/public_html/wp-content/plugins/cross-sell-product-display-for-woocommerce/templates.php on line 18
de ce apare eroarea php ar?
このPHPエラーを生成する問題は関数です sizeof() PHP 7.2または後続のバージョンのバージョンでは、指定されたパラメーターがそうでない場合、このエラーを生成できます。 array または、インターフェイスを実装するオブジェクト Countable。
したがって、多くの場合、エラーはPHPバージョンの更新後に表示されます。
生成されたPHPエラーをどのように解決しますか sizeof()?
最も簡単な方法は、関数への呼び出しを置き換えることです sizeof() 関数への呼び出しで count()。
モジュールの古いバージョンを使用する人の場合 Cross Sell Product Display、ソリューションは簡単です。 18行目からの関数が交換されます templates.php。
function cdxfreewoocross_get_cross_sell_products($product_id=false){
if($product_id ===false ){
if(!is_product()){return false;}
$product_id = (int)get_the_ID();
if($product_id=='0'){return false;}
}
$crosssells = get_post_meta( $product_id, '_crosssell_ids',true);
if ( sizeof($crosssells ) == 0 || $crosssells =='') { return false; }
return $crosssells;
}
sizeof()が置き換える上記のコード:
function cdxfreewoocross_get_cross_sell_products($product_id=false){
if($product_id ===false ){
if(!is_product()){return false;}
$product_id = (int)get_the_ID();
if($product_id=='0'){return false;}
}
$crosssells = get_post_meta( $product_id, '_crosssell_ids',true);
if ( !is_array( $crosssells ) || count( $crosssells ) == 0 || $crosssells =='') { return false; }
return $crosssells;
}
この変更は、最初にチェックします $crosssells それはです array 関数を使用します is_array() それ以外の場合は戻ります false。
- [PHP 7.2 / PHP 7.3を修正] PHP警告:未定義定数の使用(これにより、PHPの将来バージョンでエラーが発生します)
- SQLで巨大なwp_optionsをクリーニングする方法 - トランジェント、wpseo_sitemap _cache_validator
- wc-ajax = get_refreshed_fragments高CPU使用(Ajaxカートフラグメントを無効にする)を修正
- WooCommerceの「選択に一致する製品は見つかりませんでした」というページをカスタマイズする方法 - オンラインストアで販売を最適化する
- SQLで巨大なwp_optionsをクリーニングする方法 - トランジェント、wpseo_sitemap _cache_validator
もし $crosssells それはです array、機能が使用されます count() のアイテムの数を決定します array。アイテムの数がゼロまたは $crosssells それは真空文字列であり、falseを返します。
このチュートリアルに明確化や完了が行われる場合は、コメントを残してください。
PHP警告を修正:sizeof():パラメーターは、可算を実装する配列またはオブジェクトである必要があります
について ステルス
技術に情熱を持ち、2006年からStealthSettings.comで喜んで執筆しています。macOS、Windows、Linuxのオペレーティングシステムだけでなく、プログラミング言語やブログプラットフォーム(WordPress)、オンラインストア(WooCommerce、Magento、PrestaShop)にも豊富な経験があります。
ステルスの投稿をすべて表示あなたも興味があるかもしれません...