W tym poradniku podpowiemy Ci jak naprawić błąd call_user_func_array() expects parameter 1 to be a valid callback w WordPress krok po kroku.
Jeżeli nie chcesz tracić czasu na czytanie tego poradnika, a zależy Ci na profesjonalnej pomocy, kliknij i skontaktuj się z naszymi ekspertami WordPress. Pomożemy Ci rozwiązać problem z komunikatem call_user_func_array() expects parameter 1 to be a valid callback .
Błąd call_user_func_array() expects parameter 1 to be a valid callback
Na początek zanim przejdziemy do próby rozwiązania razem problemu z tym błędem, zastanówmy się co oznacza komunikat call_user_func_array() expects parameter 1 to be a valid callback.
Błąd ten oznacza problem z wywołaniem funkcji związanej z akcją lub filtrami stosowanymi w WordPress. Nie zagłębiając się w aspekty techniczne, jest to najczęściej błąd, który wynika z konfliktu pomiędzy wywołaniami funkcji WordPress. Błąd call_user_func_array() expects parameter 1 to be a valid callback może przybierać różne formy i np. dotyczyć bardzo częstego problemu z wtyczką Yoast SEO.
W jednym z przypadków naszego klienta, wtyczka Yoast SEO komunikowała taki o to błąd [adres strony zmieniony celowo]:
Pełna treść komunikatu:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'yoast_no_home_noindex’ not found or invalid function name in /home/platne/serwer/public_html/siriuspro.pl/wp-includes/class-wp-hook.php on line 289
Powodem był konflikt pomiędzy wtyczką Yoast SEO a zastosowaną wcześniej przez inną firmę funkcją dodającą do konkretnych podstron tagu noindex, follow korzystającą z add_filter
:
echo '<meta name="robots" content="noindex, follow" />'; add_filter('wpseo_canonical', 'remove_canonical'); add_filter('wpseo_robots', 'yoast_no_home_noindex', 999);
Od razu podsuniemy Ci rozwiązanie, które pomogło nam pozbyć się tego błędu w Yoast SEO. Wystarczy, że dodasz ten kod w pliku functions.php, który usuwa tag noindex ze strony głównej:
add_filter('wpseo_robots', 'yoast_no_home_noindex', 999); function yoast_no_home_noindex($string= "") { if (is_home() || is_front_page()) { $string= "index,follow"; } return $string; }
Oczywiście problem z błędem call_user_func_array() expects parameter 1 to be a valid callback może dotyczyć praktycznie każdego innego aspektu w WordPress.
Poniżej znajdziesz kilka sposobów jak samodzielnie zidentyfikować problem i naprawić powyższy błąd WordPress.
Naprawa błędu call_user_func_array() expects parameter 1 to be a valid callback
Postępuj uważnie i krok po kroku wykonaj wszystkie działania. Pamiętaj, żeby przed rozpoczęciem pracy wykonać kopię zapasową WordPress. Zaczynamy 🤓
Krok 1. Sprawdź komunikat
Choć może wydawać się to trudne, to jednak bardzo ważne jest, aby na początek zrozumieć czego dotyczy wskazany komunikat. W naszym przypadku:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'yoast_no_home_noindex' not found or invalid function name in /home/platne/serwer/public_html/siriuspro.pl/wp-includes/class-wp-hook.php on line 289
Problem dotyczył funkcji yoast_no_home_noindex
. W ten sposób łatwo zidentyfikować, że przyczyną jest wspomniana wtyczka Yoast SEO. A to pozwala podjąć kolejne kroki.
Krok 2. Wyłącz wtyczkę lub motyw
Pierwszą rzeczą, którą należy zrobić jeżeli problem dotyczy wtyczki jest jej wyłączenie z poziomu panelu administratora. Analogicznie należy postąpić z motywem. Jeżeli problem zniknie, to znasz już przyczynę błędu call_user_func_array() expects parameter 1 to be a valid callback.
Wszystkie wtyczki lub motywy możesz wyłączyć dodając do nazwy folderów themes lub plugins na serwerze FTP kropkę np. .plugins lub .themes.
Możesz spróbować ponownie włączyć motyw lub wtyczkę i zobaczyć, czy problem zniknął. Jeżeli nie, przejdź do kolejnego kroku.
Krok 3. Usuń wtyczkę lub motyw
Choć może wiązać się to z utratą danych, czasami pomaga usunięcie i ponowna instalacja wtyczki lub motywu. Sprawdź, czy w Twoim przypadku te rozwiązanie za działa 🤔
Krok 4. Zapisz ustawienia
W przypadku Yoast SEO bardzo często pomocne okazuje się ponowne zapisanie zmian do bazy MySQL. Niezależnie jednak od tego jaka jest to wtyczka lub motyw powodująca problem call_user_func_array() expects parameter 1 to be a valid callback, wystarczy wejść do jej ustawień i przejść wszystkie z nich zapisując je bez zmian.
W ten sposób moduł nadpisze w bazie MySQL zmiany, a to może skutkować rozwiązaniem problemu 💁♂️
Krok 5. Wyczyść child theme
Jeżeli korzystasz z motywu child theme, istnieje spora szansa, że dodany w pliku functions.php lub innym kod powoduje problem. W tej sytuacji najlepiej ponownie wgraj motyw potomny zostawiając w nim tylko niezbędne pliki wskazane przez producenta.
Krok 6. Przeinstaluj WordPress
Może zdarzyć się, że problem wynika z błędów w plikach WordPress. Oczywiście to rzadkość, jednak warto wykluczyć taką możliwość.
W tym poradniku dowiesz się jak zrobić to samodzielnie krok po kroku: Jak zaktualizować WordPress ręcznie.
Krok 7. Skontaktuj się z twórcą
Może zdarzyć się, że konflikt powodują dwa moduły, które pracują w tym samym czasie na Twojej stronie WordPress. W takiej sytuacji pozostaje kontakt z jednym z nich, aby rozwiązać wskazany problem. Jeżeli wtyczka lub motyw cieszą się dużą popularnością oraz są wspierane to istnieje szansa, że uzyskasz bezpłatnie pomoc od twórcy oprogramowania.
Krok 8. Wyłącz tryb debugowania
Jeżeli błąd ten nie przeszkadza w używaniu strony WordPress, a nie potrafisz sobie z nim poradzić to możesz ukryć jego wyświetlanie. W tym celu sprawdź ten poradnik Tryb debugowania w WordPress [krok po kroku] jak wyłączyć wyświetlanie błędów WordPress.
Krok 9. Skorzystaj z naszej pomocy
Jeżeli w dalszym ciągu masz problem z błędem call_user_func_array() expects parameter 1 to be a valid callback możesz skontaktować się z nami. Nasi eksperci od WordPress pomogą Ci szybko i skutecznie naprawić ten błąd. Kliknij w ten formularz kontaktowy i opisz nam swój problem – rozwiązanie będzie gotowe szybciej niż myślisz! 🤓