Znikający meta box “obrazek wyróżniający”
Na jednej ze stron klientów pojawił się pewien problem, który dał o sobie znać z początkiem 2019 roku (podejrzewam, że po aktualizacji WP do 5.x.x). Po zalogowaniu do kokpitu i przejściu do edycji / dodawania wpisu / strony zniknęło okienko “Obrazek wyróżniający”.
Na stronie klienta wykorzystaliśmy wpisy wp do tworzenia i rozbudowywania portfolio, a dla ułatwienia i przyspieszenia tego procesu (realizacje zawsze miały wiele elementów wspólnych) doinstalowaliśmy wtyczkę “Duplikuj wpis“. Niestety w momencie gdy zniknęło okienko “Obrazek wyróżniający” duplikowane wpisy “otrzymywały” tę samą miniaturę, co powodowało, że na podstronie realizacje kilka ostatnich wpisów miało ten sam obrazek.
Jak przywrócić Obrazek wyróżniający?
Pierwsza myśl? “Opcje ekranu” po prawej stronie u góry, pewnie meta box został wyłączony, niestety… nie było go tam.
Zacząłem szukać w sieci rozwiązania problemu, wpisywałem w Google różne hasła po polsku, angielsku i wszystko kierowało mnie raczej do problemów związanych z kadrowaniem lub złym wyświetlaniem miniatury w archiwach. Lubię takie problemy, które wymagają, abym mocniej wgryzł się w temat, ale nie lubię gdy zaczyna to pochłaniać zbyt dużo czasu. Wtedy zaczyna mnie to wkurzać!
Do tego stopnia, że zdecydowałem o tym, że dopiszę funkcję (ACF i pole Obrazek), dzięki której miniatura wpisu będzie wyświetlać we froncie wcześniej dodany Obrazek w nowo utworzonym polu. Niestety wiązało się to z ręczną edycją ponad 250 wpisów. I musiałbym nie być sobą, ponieważ ciurkiem wszystko poprawiłem, a także zaktualizowałem instrukcję obsługi klienta i postanowiłem temat zostawić na bok.
ALE również nie byłbym sobą, gdyby w wolnej chwili dalej nie szukał rozwiązania. I tak też się stało! Po kilku tygodniach miałem w ciągu dnia małe “okienko”, pliki wgrywały się na serwer, żadne zadanie nie świeciło na czerwono. Postanowiłem znaleźć rozwiązanie. Wpisałem “why my featured image doesn’t show in wordpress dashboard“, sprawdziłem kilka linków i czułem, że jestem blisko celu. Szukałem dalej. W jednym z wpisów jakiś użytkownik zapytał dlaczego nie widzi meta boxu “Obrazek wyróżniający” skoro w motywie w pliku functions.php ma kod:
add_theme_support( 'post-thumbnails', array( 'post', 'page' ) );
I tutaj mnie coś olśniło. Strona klienta została wykonana w 2015 roku, na moje nieszczęście wykorzystałem wtedy bardzo prosty, niepopularny i już nie rozwijany “page builder” (BTW na ponad 200 wdrożonych WP dla klientów chyba tylko 3 razy [niestety] pokusiłem się o page builder). Pomyślałem, że coś zgrzyta na linii nowy wp 5.x.x <> klasyczny edytor <> page builder, sprawdźmy, więc functions.php.
Przejrzałem plik, linijka po linijce. Hm.. dla porównania sprawdziłem jeszcze plik funtions.php najnowszej wersji naszego autorskiego motywu w firmie. Patrzę, porównuję i tak, choć jestem lekko zdziwiony, to rzeczywiście to musi być właśnie to. Doklejam brakujący kod w functions.php na stronie klienta:
add_theme_support( 'post-thumbnails' );
Czyszczę cache, odświeżam stronę i jest, oto on: meta box “Obrazek wyróżniający”:
Nie byłbym sobą gdybym nie zrobił porządków. Zaktualizowałem kilkanaście ostatnich wpisów z tą samą miniaturą, odłączyłem pole “Obrazek” i usunąłem ostatnio dopisany kod wyświetlający miniaturę z pola ACF, a także przywróciłem poprzednią wersję instrukcji klienta.
Tak czasem bywa, najprostsze rozwiązanie jest bardzo blisko, wręcz w zasięgu ręki.