Se poate întâmpla ca, în Dashboard-ul site-ului, din varii motive (de exemplu, o temă pretenţioasă/uşor incompatibilă), să apară un mesaj, în partea de sus a panoului, precum în exemplul următor:
Warning: Invalid argument supplied for foreach() in /var/www/html/siteulmeu/wp-content/themes/tema_wp/inc/customizer/class-astra-font-families.php on line 141
Eroarea este cauzată atunci când variabila pe care metoda încearcă să o itereze nu este o matrice. Astfel, dacă am avea o matrice ($google_fonts_json), definită prin funcţia json_decode( $file_contants, 1 ), care la folosirea metodei foreach ( $google_fonts_json as $key => $font ) {…} returnează mesajul anterior de avertizare, se poate folosi funcţia IF, care va face loop, afişând rezultatul corect, dacă întâlneşte un array:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php IF(IS_ARRAY($google_fonts_json)) { FOREACH ($google_fonts_json AS $key => $font) { $name=KEY($font); FOREACH ($font[$name] AS $font_key => $single_font) { IF ('variants' === $font_key) { FOREACH ($single_font AS $variant_key => $variant) { IF ('regular' == $variant) { $font[$name][$font_key][$variant_key]='400'; } } } SELF::$google_fonts[$name]=ARRAY_VALUES($font[$name]) } } } |