W nowym projekcie używamy wp-super-cache (preferowana wtyczka klienta) do tworzenia statycznych plików HTML dla niestandardowych typów treści. Ale staramy się dowiedzieć, czy wszystko jest właściwie buforowane.
To jest 2-częściowe pytanie.
1) Motyw, który stworzyliśmy, wykorzystuje szablony stron do generowania pliku json, który jest przyjmowany za pośrednictwem wywołań ajax. to znaczy. jeśli wejdziesz na stronę: theurl.com/sample - dostaniesz czysty json. Chociaż istnieje każda wersja strony i posta w języku innym niż javascript, Ajax obsługuje frontend tego motywu. W tych plikach usunęliśmy nagłówek i stopkę, aby był to czysty plik Json, i próbujemy dowiedzieć się, jak ustalić, czy plik Json jest buforowany. Teoretycznie dane byłyby buforowane, ponieważ technicznie jest to strona obsługiwana przez wordpress. Ale jak możemy dowiedzieć się, czy jest on buforowany?
2) Używamy wtyczki json api do obsługi niektórych danych postów. http://wordpress.org/extend/plugins/json-api/ W tym przykładzie powiedzmy, że korzystamy z domyślnej metody wyjścia wtyczki i odwiedzamy tę stronę: my url.com/category/news?json=1 - Czy ktoś wie, jak możemy zweryfikować, czy dane wyjściowe są buforowane? Jeśli nie jest buforowany, jaka metoda by to spowodowała?
Wydaje się, że nie ma zbyt wielu informacji na ten temat w Internecie, więc w duchu tworzenia atrakcyjnych i zoptymalizowanych stron Wordpress pomóż bratu
WP Super Cache sprawdza strony w WordPress pod kątem niektórych tagów HTML, zanim je buforuje.
Twoje strony najprawdopodobniej nie mają
</html>
tagów (częsty problem), w takim przypadku spróbuj dodać coś takiego//</html>
- to obejście, a WP Super Cache powinna następnie wygenerować buforowane wersje twoich stron.Dlaczego WP Super Cache tak to robi? Widzisz, nie ma oczywistego sposobu na sprawdzenie, czy strona jest w połowie załadowana, niż sprawdzenie, czy wszystkie podstawowe tagi HTML istnieją i są poprawnie zamknięte.
Własnymi słowami Donnchy (programisty WP Super Cache): „Ma to zatrzymać buforowanie w połowie wygenerowanych stron”.
źródło
UWAGA BEZPIECZEŃSTWA: Tego (i innych rozwiązań) nie należy używać, chyba że masz sposób na przesłonięcie
Content-Type: text/html
nagłówka wysyłanego przez WP Super Cache o odpowiedniejapplication/json
wartości. Wysłanie JSON astext/html
spowoduje, że przeglądarka wyświetli go jako HTML, który może potencjalnie być wektorem XSS.Wygląda na to, że należy to zrobić na warstwie serwerowej, ponieważ WPSC nie zapewnia niezbędnych zaczepień.
Tak to zrobiłem. Jest podobny do podejścia Liang, ale nie wymaga bezpośredniej modyfikacji wtyczki i ma bardziej precyzyjny wzorzec wyrażenia regularnego.
Jeśli używasz v2 interfejsu API REST, powinieneś użyć
REST_REQUEST
zamiastJSON_REQUEST
.Dobrze byłoby zasubskrybować 22 i # 79, jeśli coś zmieni się w WP Super Cache.
źródło
XMLHttpRequest cannot load http://api.mywebsite.com/wp-json/wp/v2/posts. Origin http://mywebsite.com is not allowed by Access-Control-Allow-Origin.
jak to naprawić?Access-Control-Allow-Origin
nagłówek, aby zezwolić na żądanie krzyżowego pochodzenia. Zgaduję, że strony buforowane nie wysyłają tego nagłówka.Też spotkałem ten problem. Napisałem trochę mojego kodu jako API. Gdy typ odpowiedzi to XML, pamięć podręczna działała. Ale gdy typ odpowiedzi to Json, nie zadziałało.
Naprawienie tego błędu zajmuje mi kilka godzin.
To dla mnie praca.
Po prostu zaktualizuj kod, tak jak moje zmiany.
Teraz działa dla mnie.
źródło
wp_cache_eof_tags
filtra zamiast bezpośrednio modyfikować wtyczkę.