Mam klienta, którego witryna będzie intensywnie wykorzystywać niestandardowe typy postów do konfigurowania swojej witryny. Ale jestem między kamieniem a twardym miejscem dla ich żądanej strony głównej.
W rzeczywistości strona główna będzie stosem określonych „stron” w WordPress. Zasadniczo będą dostępne strony: Intro , Blog , O nas , Portfolio i Kontakt . Wszystkie zostaną ułożone jeden na drugim, aby można było przewijać strony.
Moim pierwszym instynktem było po prostu użycie strony (zwanej Home ) i osadzenie krótkiego kodu, który akceptuje ślimaki stron i wyświetla odpowiednią kolejność (tj [pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]
.). Strona używałaby niestandardowego szablonu strony do układania elementów, kontrolowania pętli i dodawania nawigacji po lewej stronie strony. Ale to wszystko wydaje się niezdarne.
Moim idealnym rozwiązaniem byłoby stworzenie niestandardowego typu postu (zwanego Stackem ), który pozwoli użytkownikowi końcowemu na pozycjonowanie stron metodą przeciągania i upuszczania, a CPT zajmie się układem i nawigacją.
Problem z moim idealnym rozwiązaniem to ustawienia. WordPress pozwala wybrać stronę domyślnej strony głównej witryny. Ale jest to związane ze stroną typu post i nie jestem pewien, gdzie się podłączyć, aby to zmodyfikować, aby użytkownicy mogli również wybrać stos jako domyślną stronę główną.
Gdzie mam się podłączyć, aby dodać CPT do listy dostępnych stron domyślnej strony głównej?
post_type
nie jest jeszcze ustawiony, apage_id
to nie jest 0) uniemożliwia wszystkie 404. Mogę teraz uruchamiać zapytania dla wszystkich moich niestandardowych postów, wszystkich moich postów i wszystkich stron bez żadnej ingerencji.Może tak? Udoskonalona wersja mojego wcześniejszego rozwiązania .
źródło
Dlaczego po prostu nie utworzyć
front-page.php
pliku szablonu, który używa normalnego zapytania / pętli lub (jeśli opcja Motyw niestandardowy jest ustawiona do wyświetlania CPT na stronie głównej), wyświetla niestandardowe zapytanie / pętlę na podstawie CPT?Problem polega na tym, że musiałbyś utworzyć osobną opcję Motywu, aby kontrolować wyjście strony głównej, a jednocześnie pouczyć użytkowników, aby ustawić stronę główną na stronę statyczną.
Aby to ułatwić, możesz podłączyć opcję motywu do czytania ustawień, używając grupy opcji „Czytanie” w swoim wywołaniu
register_setting
za pośrednictwem interfejsu API ustawień, aby wyświetlał się z istniejącymi opcjami strony głównej.źródło
front-page.php
Wybierany jest automatycznie, ponieważ jest częścią hierarchii szablonu wordpress. Nie musisz pamiętać, dlaczego tak się dzieje (lub musisz zaznaczyć to dla następnej osoby).Myślę, że coś mogło się zmienić, odkąd EAMann napisał swoją aktualizację w 2011 roku, a funkcja wpa18013_add_pages_to_dropdown () już nie działa. Jak wspomniano w komentarzu Dameera, ta funkcja obecnie (grudzień 2013 r.) Zgłasza błąd „Brak argumentu 2 dla wpa18013_add_pages_to_dropdown ()”
Dla mnie rozwiązaniem było przepisanie funkcji bez tego drugiego parametru lub sprawdzenie jego zawartości. Pełny blok kodu staje się wtedy:
Pamiętaj, że w powyższym przykładzie niestandardowy typ wpisu, który dodaję, to „unbox_tabs” zamiast „stack”.
źródło
Korzystam z tej techniki, aby dołączyć szablon z wtyczki. Tak więc rozwiązanie @ ChipBennett nie ma zastosowania.
Aby dodać CPT ( ) z wtyczki do listy stron statycznych, zmodyfikowałem rozwiązanie @ EAMann w następujący sposób:
'hierarchical' => 'false'
Odniesienie rdzenia v3.4.2:
niewielka różnica numerów linii w 3.5 RC3, ale kod pozostaje ten sam
źródło