web-dev-qa-db-ja.com

Warning:portfolio-list.phpのforeach()に無効な引数が指定されました

WordPressテーマに問題があります。

注目の画像を自分のポートフォリオアイテムにアップロードした後、以下のエラーが発生します。

Warning:150行目の/home2/maryhtran/public_html/wp-content/themes/Motive/portfolio-list.phpでforeach()に無効な引数が指定されています

これがportfolio-list.phpにあるエラーの原因となっているコードです。

// Get the terms( categories ) for the portfolio item
$terms = get_the_terms( $post_item->ID, 'portfolio_categories' );

foreach( $terms as $term ) {
// some code here
}

なぜこれが起こっているのか、どうすればこのエラーを修正できるのか、誰かに教えてもらえますか。

1
Mary

用語が返されないため、foreach()に無効なエントリが入力された場合に発生します。これを防ぐには、ループを条件式で囲みます。

// Get the terms( categories ) for the portfolio item
$terms = get_the_terms( $post_item->ID, 'portfolio_categories' );
if(is_array($terms) || is_object($terms)){
    foreach( $terms as $term ) {
    // some code here
    }
}

今、ループはポストのみいくつかの用語を持って実行されます。

1
Jack Johansson

エラーはあなたのテーマにあります。テーマサポート担当者に連絡してください。それはテーマに関する質問をするのにふさわしい場所です。

(しかし、エラーはget_the_terms()関数が配列を返さないようなので、foreachは機能しません。)

それはテーマ作者によって修正されなければなりません。

0
Rick Hellewell

予測するのは少し難しいですが、試してみることができるいくつかのオプションがあります。

  1. 投稿IDをエコーアウトして、実際に作成されていることを確認してください。
  2. 「portfolio_categories」が分類法の正確な名前であるかどうかを確認してください。管理パネルのリンクにカーソルを合わせて、URLで "taxonomy = [some_name]"を探すことができます。

これらのことをチェックして、あなたが見つけることができるものを見てください。

0
Sid