Natknąłem się więc na problem z używaniem WP RAM i szukam rozwiązania.
Jedynym miejscem, w którym naprawdę mam ten problem na mojej stronie, jest strona mapy witryny, którą próbuję wypełnić, ale rozwiązaniem tego problemu może być uniwersalne zastosowanie i oszczędność pamięci RAM w całej witrynie.
Zasadniczo ta strona mapy witryny, którą mam, jest listą wszystkich posts
i pages
na mojej stronie. Jedynymi elementami zmiennej $ post, do których potrzebuję dostępu na tej stronie, są tytuł i bezpośredni link. Niestety zapytanie, którego używam, zwraca wszystkie posty ze wszystkimi informacjami w każdej z ich zmiennych $ post.
Poniżej znajduje się przykład zapytania, którego używam na tej stronie mapy witryny dla pojedynczego produktu o custom-post-type
nazwie „produkty” z niestandardową taksonomią „suplementów” i terminem „wszystkie suplementy”. Na mojej stronie mapy witryny jest wiele takich zapytań, ale w celach wyjaśniających podaję tylko kod dla tego pojedynczego zapytania.
$varArray= array(
'post_type' => 'products',
'post_status' => 'publish',
'supplements' => 'all-supplements',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC'
);
$myProducts= new WP_Query($varArray);
Zdecydowana większość informacji zapisanych w zmiennej $ post (dla mojej witryny i zgaduję, że ten trend jest widoczny dla ogólnego użytku) znajduje się w „treści”. Typowe użycie pamięci RAM dla mojej strony mapy witryny wynosi ~ 140 MB (zgłaszane przez pasek debugowania), podczas gdy użycie każdej innej typowej strony w mojej witrynie wynosi 50-60 MB. Duża różnica. Wczoraj strona Mapa witryny przestała działać (WSOD) i aby to naprawić musiałem zwiększyć maksymalną ilość pamięci RAM, którą WP może użyć. Zwiększam więc ogólne niezbędne zasoby systemowe z powodu jednej strony.
W ten sposób dochodzę do mojego pytania.
Czy jest gdzieś w Wordpressie ścieżka / opcja, której brakuje, która mogłaby pobrać posts
/ pages
jak normalne zapytanie, ale NIE pobierać treści dla pobranych postów?
Czy też jest jakiś łatwiejszy sposób, aby pobrać tylko określone elementy w ramach danego zapytania (Title / Permaklink / Slug / etc ...) zamiast uzyskać cały shebang zmiennej $ post?
Wydaje mi się, że dla wielu zastosowań WP, jedynym miejscem, że „content” z post / strona będzie zazwyczaj potrzebny jest na to page
czy post
strona (oczywiście są wyjątki tutaj), i że mając dostęp do pełnej treści dla stanowisk / strony pobrane przez zapytanie na innych stronach to zwykła nadmiar. Jeśli istnieje sposób na uniknięcie ładowania pełnej zawartości stron list wpisów, można zaoszczędzić znaczną ilość pamięci RAM.
Każda pomoc będzie mile widziana.