0

Web サイトを終了した後にオンラインにしようとしたが、エラーが発生する警告: implode(): 674 行目の functions.php で無効な引数が渡されました

foreach ( $one_array_font as $font => $variants ) {
    $font = str_replace(' ', '+', $font);
    $variants = implode(',', array_values($variants['variant']) );
    $all_final_fonts[] = $font.':'.$variants;
}

$gfont = implode('|', $all_final_fonts); /* <-- This line fails */

wp_enqueue_style( 'zn_all_g_fonts', '//fonts.googleapis.com/css?family='.$gfont.''.$subset);

if ( $data['zn_main_style'] == 'dark' ) {
    wp_enqueue_style('zn-dark-style', get_template_directory_uri() . '/css/dark-theme.css',array() ,false,'all');
}

if ( !empty ( $data['g_fonts_subset'] ) ) {
   $subset = '&subset='.str_replace( ' ' , '' , $data['g_fonts_subset']);
}
4

2 に答える 2

2

質問には十分な情報がありませんが、これが起こっていると思います:

  • まず、$one_array_font空です。

  • これは、foreach()ループが実行されないことを意味します。

  • これは、回線$all_final_fonts[] = $font.':'.$variants;が実行されないことを意味します。

  • $all_final_fonts以前は定義されていなかったと思います。したがって、コードがimplode.

  • implode()入力フィールドが配列である必要があるため失敗しますが、未定義の変数を指定しました。

解決

ループ$all_final_fontsの前に次の行を追加して、 が定義されていることを確認します。foreach()

$all_final_fonts = array();

これにより、変数が配列として初期化されるため、implode()データがなくても文句を言うことはありません。

それが役立つことを願っています。

于 2013-05-16T16:29:17.077 に答える