Wsparcie » Motywy » błąd podczas tworzenia motywu

  • str888

    (@str888)


    Witam,
    tworzę motyw w oparciu o kurs intranetowy i wywaliło mi błąd:
    : array_values() expects parameter 1 to be array, boolean given in // line 233
    : array_shift() expects parameter 1 to be array, null given in // line 233
    : Object of class WP_Error could not be converted to string in // line 238

    screen z kodem

    Dopiero uczę się PHP i nie wiem jak sobie z tym poradzić. Może macie jakieś pomysły?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Moderator Paweł Knapek

    (@adpawl)

    Przyczyna jest taka, że z get_the_terms() nie dostajesz tego, czego oczekujesz …a nie dostajesz bo np. wywołujesz ten kod nie we wpisie albo we wpisie bez taksonomii meal-type.

    Na samym początku powinieneś sobie sprawdzić czy to wpis np:
    if( !is_single() ) return;
    albo chociaż czy istnieje ID:
    if( !isset( $post->ID ) return;

    Potem po wywołaniu get_the_terms() powinieneś sprawdzić, czy nie zwróciło przypadkiem błędu:
    if ( is_wp_error( $recipe_cats ) ) return;

    W innym wypadku kod poleci sobie dalej, pomimo tego że w $recipe_cats będzie obiekt błędu, zamiast tablicy z termami i dostaniesz wysyp ostrzeżeń spowodowanych nieoczekiwanymi wartościami jak powyżej.

    ps. te wszystkie echo powyżej 229 linijki zebrał bym w grupę i dał poniżej tych deklaracji zmiennych.
    Bo głupio tak zawczasu wypluwać coś na ekran, gdy potem może wystąpić błąd na $recipe_cats i trzeba zakończyć funkcję 😉

    str888

    (@str888)

    Dzięki, faktycznie nie przypisałem w kokpicie typu posiłku do wpisu. Choć dobrze by było jakby pomijało to jeśli nie jest przypisany a nie wywalało błąd 😛

    Moderator Paweł Knapek

    (@adpawl)

    Choć dobrze by było jakby pomijało to jeśli nie jest przypisany a nie wywalało błąd

    Toć własnie powyżej masz zabezpieczenia, by kończyło funkcję, a nie sypało błędami.

Viewing 3 replies - 1 through 3 (of 3 total)