Przycisk „Edit with Page Builder Sandwich” nie pojawia się

Przycisk „Edytuj w Page Builder Sandwich” nie pojawia się

Jeśli nie widzisz przycisku „Edytuj w Page Builder Sandwich” na swojej stronie od strony frontendu, oto kilka rzeczy, które możesz wypróbować:

Upewnij się, że pasek administratora jest widoczny

Przycisk edycji dla PB Sandwich jest dostępny na pasku administratora na frontendzie. Upewnij się, że pasek administratora jest widoczny, przechodząc do panelu administracyjnego do sekcji  Użytkownicy > Twój profil i upewnij się, że pole Pokazuj pasek narzędzi podczas przeglądania witryny jest zaznaczone.

e5960e581e file w9uN2EeCjm

Upewnij się, że jesteś na stronie, we wpisie lub we własnym typie wpisu

Tylko wpisy, strony i własne typy wpisów (Custom Post Types) można edytować z poziomu frontendu. Elementy można edytować na frontendzie tylko wtedy, gdy można je edytować za pomocą edytora treści WordPressa w panelu administracyjnym. Pozostałe obszary Twojej witryny – np. lista wpisów na stronie głównej, lista wszystkich wpisów na blogu, listy kategorii, strony błędu 404, strony wyników wyszukiwania – to strony dynamiczne generowane przez WordPressa wraz z używanym motywem i nie można ich edytować za pomocą PB Sandwich.

Jednym ze wskaźników, czy bieżąca strona jest edytowalna, jest obecność opcji „Edytuj wpis” lub „Edytuj stronę” na pasku administratora.

Upewnij się, że Twoja treść nie jest generowana dynamicznie przez motyw lub wtyczkę

Jeśli Twoja strona/wpis jest generowana dynamicznie przez motyw lub wtyczkę, nie będzie można jej edytować za pomocą Page Builder Sandwich (i najprawdopodobniej innych page builderów również). Jeśli zauważysz, że edytor treści w panelu administracyjnym jest pusty, ale strona na frontendzie jest pełna treści, jest to dobry znak, że strona jest generowana dynamicznie.

Aby sprawdzić, czy Twoja strona jest generowana dynamicznie, wyświetl źródło strony (kliknij prawym przyciskiem myszy, a następnie wybierz „Wyświetl źródło strony”). Wyszukaj tekst „pbs-main-wrapper” – jeśli go nigdzie nie znajdziesz, oznacza to, że strona jest generowana dynamicznie.

Oto kilka przykładów dynamicznie generowanej treści:

  • Twoja strona składa się z wielu widżetów, które dodajesz/edytujesz w konfiguratorze (Customizer),
  • Twoja strona składa się z różnych podstron połączonych przez motyw typu „one page” (w tym przypadku nadal możesz edytować poszczególne podstrony, ale nie stronę połączoną) lub
  • Twoja strona składa się z najnowszych wpisów na blogu.

Spróbuj najpierw dodać trochę treści

Zdarzały się przypadki, w których motyw w ogóle nie wyświetlał treści, jeśli była pusta, przez co PBS błędnie uznawał stronę za nieedytowalną. Aby sprawdzić, czy tak jest, edytuj stronę/wpis w edytorze panelu administracyjnego, spróbuj dodać dowolny tekst do treści (na przykład „cześć”), a następnie kliknij przycisk „Edytuj w Page Builder Sandwich” z tego miejsca.

Dziękujemy Mathiasowi Hellquistowi za tę wskazówkę!

Upewnij się, że Twoja strona nie jest „przejęta” przez inny page builder

Niektóre page buildery wymagają wyboru między domyślnym edytorem treści WordPressa a własnym edytorem page buildera. Jeśli strona była już edytowana za pomocą innego page buildera, istnieje możliwość, że przejął on treść, przez co inne hooki/filtry treści nie mogą się już uruchomić. Z tego powodu Page Builder Sandwich czasami nie jest w stanie wykryć, gdzie znajduje się treść, i nie wyświetla przycisku edycji, ponieważ nie ma nic do edytowania.

Aby to naprawić, po prostu zrezygnuj z używania tego page buildera dla tej konkretnej strony/wpisu i wybierz domyślny edytor treści WordPressa.

Upewnij się, że masz uprawnienia do edycji strony

Przycisk edycji nie pojawi się, jeśli nie masz uprawnień do edycji strony. Na przykład, jeśli jesteś redaktorem lub współpracownikiem i możesz pisać wpisy oraz artykuły w witrynie, nie oznacza to automatycznie, że możesz edytować stronę główną lub stronę kontaktową. Jeśli widzisz przycisk „Edytuj wpis” na pasku administratora, powinno być również możliwe edytowanie go za pomocą PB Sandwich. Jeśli potrzebujesz uprawnień do edycji, poproś o nie administratora witryny.

Możliwe, że błąd JavaScript uniemożliwia działanie PB Sandwich

PB Sandwich intensywnie korzysta z JavaScriptu. Jeśli pojawiają się błędy JavaScript pochodzące z innych skryptów w Twojej witrynie, może to uniemożliwić działanie PB Sandwich. Aby sprawdzić, czy tak jest, możesz otworzyć konsolę deweloperską w przeglądarce i sprawdzić, czy występują błędy. 

Do tego celu zalecamy użycie przeglądarki Chrome. Kliknij prawym przyciskiem myszy dowolny element na stronie, a następnie kliknij opcję „Zbadaj”. Otworzy to nowy panel na dole przeglądarki; kliknij zakładkę „console”. Jeśli występują błędy, zobaczysz coś w tym stylu:

4acce143a3 file

Jeśli występuje błąd, możesz również dowiedzieć się, skąd pochodzi, klikając lub najeżdżając kursorem myszy na nazwę skryptu:

abb5a87c67 file ITjVcdhZQU

Błędy te mogą pochodzić z motywu lub innych zainstalowanych wtyczek. Naprawienie tych błędów może przywrócić działanie PB Sandwich.

Jeśli Twój motyw lub jedna z wtyczek powoduje błąd JavaScript, daj nam znać drogą mailową pod adresem  [email protected], a my dołożymy wszelkich starań, aby rozwiązać problem 🙂

Jeśli korzystasz z Cloudflare, upewnij się, że Rocket Loader jest wyłączony

Cloudflare to powszechnie używana bezpłatna usługa DNS/CDN. Jest świetna, ale PBS ma obecnie problemy z funkcją Rocket Loader. Rocket Loader przyspiesza czas ładowania plików JavaScript, lecz zaburza kolejność zależności i wywołań skryptów PBS. Jeśli Rocket Loader jest włączony, przycisk edycji Page Builder Sandwich nie pojawi się (a w konsoli JavaScript nie pojawią się żadne błędy).

Aby sprawdzić, czy Twoja witryna korzysta z funkcji Rocket Loader w Cloudflare, wyświetl źródło strony (kliknij prawym przyciskiem myszy, a następnie wybierz „Wyświetl źródło strony”) i wyszukaj tekst „rocketscript”. Jeśli znajdziesz ten tekst, oznacza to, że funkcja Rocket Loader jest włączona.

e4dff5b8c0 file tPnWvP09FF

Przeczytaj artykuł o  zgodności z Cloudflare i Rocket Loader, aby uzyskać pełne instrukcje dotyczące wyłączenia tej funkcji.


Wszystko to zrobiłem, a przycisku edycji nadal nie ma!

Dobrze, jeśli żadne z powyższych rozwiązań nie pomogło, nadszedł czas, aby wyjaśnić, dlaczego przycisk się nie wyświetla i co można z tym zrobić. Gotowi? Zaczynajmy!

„Dlaczego” (ujęcie nietechniczne)

Page Builder Sandwich musi wiedzieć, gdzie znajduje się treść Twojej strony/wpisu. Robimy to poprzez nasłuchiwanie momentu, w którym WordPress wczytuje treść wpisu, i „oznaczanie” tego obszaru, aby po załadowaniu wszystkiego wiedzieć, gdzie znajduje się właściwa treść.

Czasami niektóre wtyczki nadpisują lub omijają ten proces i próbują ładować treść po swojemu. W niektórych przypadkach nie stanowi to problemu, ale w określonych scenariuszach, zwłaszcza w odniesieniu do ładowania głównej treści wpisu, może to spowodować, że niektóre wtyczki przestaną działać. Gdy inna wtyczka pominie ten proces wczytywania, naniesione przez nas „znaczniki” mogą zostać utracone, a kiedy przychodzi czas na uruchomienie edytora, nie może on już odnaleźć Twojej treści. W efekcie przycisk edycji się nie pojawia! Możesz również zauważyć, że niektóre wtyczki dodające treść do strony, takie jak wtyczki do udostępniania w mediach społecznościowych, również przestają działać dokładnie z tego samego powodu.

„Dlaczego” (ujęcie techniczne)

Page Builder Sandwich musi  wiedzieć, gdzie znajduje się treść strony/wpisu, i robi to, podpinając się pod filtr the_content oraz dodając wrapper wokół głównej treści. Niektóre wtyczki mogą to nadpisywać i w dalszej kolejności zastępować treść za pomocą funkcji get_the_content(). Niestety takie działanie uniemożliwia wywołanie WSZYSTKICH filtrów the_content, przez co wrapper PBS zostaje utracony. Wszelkie zmiany wprowadzone przez inne wtyczki również przepadają.

W samym użyciu get_the_content() jako takim nie ma nic złego, jednak może to wywołać niepożądane skutki, jeśli funkcja ta zostanie użyta w głównym zapytaniu oraz wewnątrz szablonu pojedynczego wpisu zamiast standardowego wywołania the_content(), w którym uruchamiane są wszystkie filtry the_content.

Co można z tym zrobić

Możesz sprawdzić, czy „znaczniki” Page Builder Sandwich są nieobecne, odwiedzając swoją stronę/wpis na frontendzie i wyświetlając źródło strony będąc zalogowanym. Przeszukaj kod pod kątem ciągu znaków:

data-name="main-content"

Jeśli uda Ci się go znaleźć, problem może tkwić w JavaScripcie – po prostu poinformuj nas, jakiego motywu i jakich wtyczek używasz, a my to naprawimy.

Jeśli jednak go nie znajdziesz, może to oznaczać, że motyw (lub wtyczka, ale w przypadku strony lub wpisu na blogu najczęściej jest to motyw) wykonuje niestandardowe operacje na treści wpisu. W takim przypadku skontaktuj się z autorem motywu i poinformuj go o problemie! Możesz również przedstawić mu powyższe techniczne wyjaśnienie „dlaczego” – pomoże to w debugowaniu 🙂

Jeśli czujesz się pewnie podczas modyfikowania kodu PHP, możesz spróbować rozwiązać problem, znajdując plik szablonu odpowiedzialny za wyświetlanie treści wpisu. Jednym z rozwiązań, z jakimi się spotkaliśmy, jest zastąpienie wywołania:

$content = get_the_content();

poniższym kodem:

ob_start();
the_content();
$content = ob_get_clean();<br>

Uwaga: Nazwa zmiennej PHP w Twoim przypadku może być inna, ale sama koncepcja pozostaje bez zmian. Jeśli to zadziała, najlepiej utworzyć motyw potomny zamiast wprowadzać tę zmianę bezpośrednio w motywie głównym. Modyfikacja ta może również wywołać skutki uboczne, dlatego warto skonsultować się w tej sprawie z autorem motywu.