Zastanawiam się, jak / czy mogę uzyskać dostęp do więcej niż najnowszych postów X zdefiniowanych w ustawieniach wordpress. Widziałem wtyczki, które migrują całą zawartość blogu przez RSS, nie szukałem ich metod.
Zasadniczo zarządzam kilkoma blogami WordPress i tworzę generator biuletynów dla moich klientów. Chcą mieć możliwość wybrania kilku postów i udostępnienia fragmentów w treści biuletynu. Witryny są rozmieszczone na wielu serwerach, a generator biuletynów jest budowany na bazie naszego CRM, więc bezpośrednie zapytania do bazy danych byłyby trudne. RSS byłby najczystszy, ale wydaje mi się, że nie mogę dowiedzieć się, jak uzyskać dostęp do więcej niż 10 na raz (gdy 10 jest ustawione w adminie).
Jakieś pomysły?
Odpowiedzi:
Kodeks zawiera przykładowy fragment opisujący sposób użycia
post_limits
filtru do zastąpienia kwoty ustawionej w adminie dla kanału.http://codex.wordpress.org/Function_Reference/query_posts#Usage_Tips
źródło
Sposobem na uzyskanie swoich postów jest wywołanie różnych stron kanału rss w generatorze biuletynów. Jest to bezpieczne podejście, które nie wymaga aktualizacji różnych instalacji Wordpress:
twojastrona.com/feed -> uzyskaj 10 ostatnich postów
twojastrona.com/feed/ ? paged = 2 -> zdobądź kolejne 10 postów
I tak dalej.
źródło
Niestety, to, co próbujesz zrobić, jest ogólnie odrzucone w większości społeczności. Słyszę, że prosisz o:
Jest to praktyka powszechnie stosowana do zeskrobywania treści z blogów i ponownego opublikowania ich bez zgody oryginalnego autora. Dlatego mówię, że to na ogół marszczy brwi. Większość autorów blogów poświęca wiele czasu i energii na tworzenie świetnych treści, więc ułatwienie stronom trzecim ciężkiej pracy nad dodaniem kredytu SEO do własnej witryny jest ... cóż ... kiepskie.
To powiedziawszy, zakładam, że masz uzasadnione powody, by skrobać zawartość z ponad 700 witryn. W takim przypadku poleciłbym osobną, programową metodę - nie RSS. Jeśli posiadasz prawidłowe dane logowania do wszystkich tych stron (tj. Są to twoje strony, a nie innych), możesz użyć wbudowanych funkcji XML-RPC do WordPressa, aby pobrać zawartość.
Skorzystaj z wbudowanej biblioteki XML-RPC, aby przekazać żądanie
metaWeblog.getRecentPosts
podania identyfikatora bloga (zwykle 0 dla pojedynczych witryn, ale może być różny dla wielu witryn), swojej nazwy użytkownika WordPress, hasła WordPress i liczby postów do pobrania (ustaw na -1, aby otrzymać je wszystkie).Druga strona odpowie (raczej dużym) plikiem XML zawierającym treść, którą możesz zrobić z tym, co chcesz. To wszystko może się zdarzyć za kulisami, a
metaWeblog.getRecentPosts
żądanie dostarczy Ci znacznie więcej informacji niż kanał RSS (w tym niestandardowe pola, które mogą być dla Ciebie ważne).źródło
Jeśli pamięć służy, przekazanie -1 jako liczby postów ma ten sam efekt. Jednak nie do końca wiadomo, jak zostanie wrzucony do adresu URL.
Nawiasem mówiąc, jeśli naprawdę chcesz mieć ponad 700 witryn, zastanów się nad posiadaniem crona, który svn aktualizuje lub git ściąga ze stabilnego oddziału, z prywatnego repozytorium na co dzień ... W połączeniu z codziennym wywołaniem http do wp- admin / upgrade.php. Pozwoli ci to zaoszczędzić wiele kłopotów przy aktualizacji lub ulepszaniu twoich stron - dzięki temu zrobisz to automatycznie.
źródło
możesz użyć agregatora RSS, takiego jak FeedWordpress
źródło
Jeśli przejdziesz do opcji Ustawienia> Czytanie> i zmienisz wartość w polu „Kanały syndykacji pokazują najnowsze” na liczbę, która Ci odpowiada, wyświetli się ona do liczby wprowadzonych kanałów.
źródło
Chociaż nie „wszystkie posty”, twierdzę, że
limit
param jest o wiele bardziej przydatny.Poleciłbym bezpośrednio odfiltrować opcję „posts_per_rss” jako taką:
Następnie można uzyskać dostęp do kanału: http://example.org/category/acme/feed/?limit=999
źródło