Muszę utworzyć wtyczkę, która udostępnia niestandardowe szablony stron w wp-admin. Zastanawiam się, czy ktoś już się tym zajął, ponieważ wydaje się to dość typowym procesem?
plugins
templates
page-template
jnthnclrk
źródło
źródło
Odpowiedzi:
Tak jak odpowiedział Rarst, naprawdę możesz to zrobić bez edycji podstawowych plików lub usunięcia metaboksu atrybutów strony i stwórz swój przy użyciu tego samego kodu z niewielką modyfikacją. poniższy kod to kod pliku /admin/include/meta-boxes.php, a ja dodałem komentarz, aby pokazać, gdzie pójdą dodatkowe opcje szablonu strony:
Nie wiem, czy jest to poprawka w twoim przypadku, ale miałem skrzynkę ze smilerem, gdy potrzebowałem wyświetlić typ postu we wbudowanym motywie wtyczki i do tego użyłem,
add_filter('the_content', 'my-function');
a moja funkcja utworzyła wyjście do wyświetlenia.Inną opcją byłoby spowodowanie, aby wtyczka utworzyła plik szablonu w bieżącym katalogu motywów, mniej więcej tak:
i możesz to uruchomić po pierwszym sprawdzeniu, czy plik istnieje
Mam nadzieję, że jedno z nich pomaga.
źródło
Nie jestem do końca pewien, czy rozumiem, co próbujesz osiągnąć, a przynajmniej dlaczego chcesz, aby wtyczka to zrobiła.
Normalna procedura tworzenia różnych szablonów stron to:
Utwórz nowy szablon strony w katalogu motywów ACTIVE (zrób kopię page.php).
Zmień nazwę szablonu (w pliku).
/ * Nazwa szablonu: Strona o pełnej szerokości * /
Zmień kod strony na to, co próbujesz osiągnąć.
Możesz teraz utworzyć nową stronę i wybrać, którego „szablonu” użyć.
...
Mam nadzieję, że właśnie to próbujesz osiągnąć?
Oficjalna dokumentacja tutaj: http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
źródło
Wydaje się to dość trudne do osiągnięcia.
get_page_templates()
funkcja aktywnie odrzuca wszystko, co nie znajduje się w katalogach głównych nadrzędnych i podrzędnych. Nie zapisuje również w zmiennej globalnej ani nie pozwala na filtrowanie wygenerowanej listy szablonów.Sądzę, że meta box atrybuty strony będzie wymagał rozwidlenia i całkowitego zastąpienia. I nie jestem pewien, czy to będzie możliwe nawet wtedy.
Zgadzam się, że wydaje się to mieć sens, ale kod WordPress jest bardzo precyzyjny, ponieważ chce, aby nazwane szablony pochodziły tylko z katalogu motywu.
źródło
Czy to nie jeden z powodów, które
register_theme_directory()
zostały wprowadzone?http://core.trac.wordpress.org/ticket/10467
W tym czasie był to problem związany z BuddyPress, który chciał wrzucić tu i tam dodatkowe szablony.
Rozumiem, że nie są one poprawnie wymienione jako szablony stron, jednak:
http://core.trac.wordpress.org/ticket/15803
źródło