3209 wyświetlenia
1050 wyrazów
Call_user_func_array() expects parameter 1 to be a valid callback WordPress

Call_user_func_array() expects parameter 1 to be a valid callback WordPress

Przeczytasz w 5 minut i 15 sekund 2020.11.27 | Aktualizacja: 2023.02.15
Call_user_func_array() expects parameter 1 to be a valid callback WordPress

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]:

WordPress: call_user_func_array() expects parameter 1 to be a valid callback - błąd

Błąd WordPress call_user_func_array() expects parameter 1 to be a valid callback.

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! 🤓

Jesteśmy by pomagać

Skorzystaj z natychmiastowej pomocy ekspertów WordPress. Wyślij nam wiadomość za pomocą formularza kontaktowego i opisz nam swój problem lub to czego potrzebujesz.

Nazwa firmy
Sirius Pro

Dane firmy
ul. Grzybowska 87
00-844 Warszawa

Identyfikator
PL 9111958679

Na stronie Sirius Pro nie korzystamy z plików cookies oraz kodów śledzących, a także nie profilujemy Twojej aktywności, dzięki czemu możesz korzystać z niej całkowicie anonimowo i prywatnie.