Chcę utworzyć niestandardową stronę dla mojego bloga WordPress, który wykona w nim mój kod PHP, pozostając jednocześnie częścią ogólnej strony CSS / theme / design.
Kod PHP korzysta z interfejsów API innych firm (więc muszę dołączyć inne pliki PHP).
Jak to osiągnąć?
Uwaga: Nie mam szczególnej potrzeby interakcji z interfejsem API WordPress - oprócz dołączania niektórych innych bibliotek PHP, nie potrzebuję żadnych innych zależności w kodzie PHP, które chciałbym umieścić na stronie WordPress. Oczywiście każde rozwiązanie, które nie wymagałoby nauki interfejsu API WordPress, byłoby najlepsze.
Odpowiedzi:
Nie musisz wchodzić w interakcje z interfejsem API ani używać wtyczki.
Najpierw zduplikuj
post.php
lubpage.php
w folderze motywu (poniżej/wp-content/themes/themename/
).Zmień nazwę nowego pliku na
templatename.php
(gdzie nazwa szablonu jest tym, co chcesz nazwać nowym szablonem). Aby dodać nowy szablon do listy dostępnych szablonów, wprowadź następujące polecenie u góry nowego pliku:Możesz zmodyfikować ten plik (za pomocą PHP), aby uwzględnić inne pliki lub cokolwiek potrzebujesz.
Następnie utwórz nową stronę na swoim blogu WordPress, a na ekranie edycji strony zobaczysz menu Szablon w widżecie Atrybuty po prawej stronie. Wybierz nowy szablon i opublikuj stronę.
Twoja nowa strona będzie używać kodu PHP zdefiniowanego w
templatename.php
Źródło: Tworzenie niestandardowych szablonów stron do użytku globalnego
źródło
Jeśli chcesz utworzyć własny plik .php i współdziałać z WordPress bez nagłówków 404 i zachować aktualną strukturę permalink, nie ma potrzeby pliku szablonu dla tej jednej strony.
Odkryłem, że to podejście działa najlepiej w twoim pliku .php:
Następnie możesz po prostu wykonać dowolne funkcje WordPress. Zakłada się również, że plik .php znajduje się w katalogu głównym witryny WordPress, w której znajduje się
wp-config.php
znajduje się plik.Dla mnie jest to bezcenne odkrycie, którego używałem
require_once(dirname(__FILE__) . '/wp-blog-header.php');
przez najdłuższy czas, ponieważ WordPress nawet mówi ci, że jest to podejście, które powinieneś zastosować do zintegrowania funkcji WordPress, z wyjątkiem tego, że powoduje 404 nagłówki, co jest dziwne, że chcieliby do korzystania z tego podejścia. Integracja WordPress z Twoją witrynąWiem, że wiele osób odpowiedziało na to pytanie i ma już zaakceptowaną odpowiedź, ale oto dobre podejście do pliku .php w katalogu głównym witryny WordPress (lub technicznie gdziekolwiek chcesz na swojej stronie), którą możesz przeglądać i ładować bez 404 nagłówków!
Aktualizacja: Istnieje sposób użycia
wp-blog-header.php
bez nagłówków 404, ale wymaga to ręcznego dodania nagłówków. Coś takiego będzie działać w katalogu głównym instalacji WordPress:Wystarczy zaktualizować to wszystko, trochę mniej kodu potrzebnego do tego podejścia, ale to od Ciebie zależy, którego użyjesz.
źródło
wp-activate.php
musi wyłączyć nagłówek 404, ustawiając$wp_query->is_404 = false
podczas aktywacji nowych witryn za pomocąrequire( dirname( __FILE__ ) . '/wp-blog-header.php' );
u góry tej strony.wp-blog-header.php
podejścia zdefiniowanego na codex.wordpress.org/Integrating_WordPress_with_Your_Website niż zobaczyć nagłówek 404 w narzędziach inspektora przeglądarki.Jeśli jesteś podobny do mnie, czasami chcesz mieć możliwość odwoływania się do funkcji WordPress na stronie, która nie istnieje w CMS. W ten sposób pozostaje on specyficzny dla backendu i nie może zostać przypadkowo usunięty przez klienta.
W rzeczywistości jest to proste, po prostu dołączając
wp-blog-header.php
plik za pomocą PHPrequire()
.Oto przykład, który wykorzystuje ciąg zapytania do wygenerowania Facebook Open Graph (OG) dla dowolnego postu.
Weźmy przykład linku, na przykład
http://example.com/yourfilename.php?1
gdzie1
jest identyfikator postu, dla którego chcemy wygenerować dane OG dla:Teraz w treści
yourfilename.php
, dla naszej wygody, znajduje się w głównym katalogu WordPress:Masz to: wygenerowane modele udostępniania dla każdego postu przy użyciu jego rzeczywistego obrazu, fragmentu i tytułu!
Aby to zrobić, moglibyśmy stworzyć specjalny szablon i edytować strukturę permalink, ale ponieważ jest on potrzebny tylko dla jednej strony, a ponieważ nie chcemy, aby klient usunął go z CMS, wydawało się to czystszą opcją.
EDYCJA 2017: Należy pamiętać, że to podejście jest obecnie przestarzałe
W przypadku instalacji WordPress od 2016 roku zobacz Jak mogę dodać stronę PHP do WordPress? w celu uwzględnienia dodatkowych parametrów przed wysłaniem danych strony do przeglądarki.
źródło
Utworzenie strony szablonu jest poprawną odpowiedzią. W tym celu wystarczy dodać to do strony utworzonej w folderze motywu:
Aby uruchomić ten kod, musisz wybrać „mytemplate” jako szablon strony z zaplecza.
Proszę zobaczyć ten link, aby uzyskać prawidłowe szczegóły https://developer.wordpress.org/themes/template-files-section/page-template-files/ .
źródło
Żadna odpowiedź nie obejmowała, jeśli musisz dodać stronę PHP poza motywem WordPress. To jest sposób.
Musisz dołączyć wp-load.php.
Następnie możesz użyć dowolnej funkcji WordPress na tej stronie.
źródło
require_once('wp-load.php');
prawidłowego korzystaniaUtwórz stronę o nazwie my-page.php i zapisz ją w katalogu motywów. Teraz edytuj ten plik php i napisz następujący wiersz u góry strony
Napisz swój kod PHP pod niestandardową linią definicji strony, możesz wywołać inny szablon WP, funkcje wewnątrz tego pliku.
Zacznij jak
<?php require_once("header.php");?>
LUBniezależnie od tego, jak zintegrujesz nagłówek i stopkę, aby zachować spójność układu.
Ponieważ jest to moja strona, musisz utworzyć stronę z panelu administracyjnego WordPress. Przejdź do Administrator => Strony => Dodaj nowy
Dodaj tytuł strony, w zależności od sposobu zakodowania niestandardowej strony, możesz również dodać treść strony (opis). Możesz całkowicie pominąć opis, jeśli jest napisany na niestandardowej stronie php.
Po prawej stronie wybierz Szablon. Z menu wybierz Moja strona niestandardowa. Wszystko gotowe! Idź do ślimaka (permalink) utworzonego przez [wordpress] [1] i zobacz stronę.
źródło
Najlepszym sposobem, aby dodać strony PHP w WordPressie aby
Page Template
wchild-theme
folderze.Jak stworzyć
Page Template
w WordPress.Utwórz plik o nazwie
template-custom.php
i włóż go/wp-content/theme/my-theme/
.Po więcej szczegółów
źródło
Będziesz chciał zajrzeć do interfejsu API wtyczek WordPress.
To wyjaśnia, jak „zaczepić” i „przefiltrować” różne części mechaniki WordPress, dzięki czemu można wykonać niestandardowy kod PHP praktycznie w dowolnym miejscu i czasie. To przechwytywanie, filtrowanie i niestandardowe tworzenie kodu może odbywać się w pliku functions.php w dowolnym motywie. Miłego kodowania :)
źródło
Jeśli nie chcesz zajmować się interfejsem API WordPress, odpowiedź Adama jest naprawdę najlepsza.
Jeśli chciałbyś poradzić sobie z API, sugerowałbym podpięcie się do haka „przekierowanie szablonu”, który pozwoliłby ci wskazać konkretny adres URL lub stronę na dowolny plik PHP, mając nadal dostęp do WordPress.
źródło
Powszechnie akceptowana odpowiedź Adama Hopkinsona nie jest w pełni zautomatyzowaną metodą tworzenia strony! Wymaga od użytkownika ręcznego utworzenia strony w zapleczu WordPressa (w desce rozdzielczej wp-admin). Problem polega na tym, że dobra wtyczka powinna mieć w pełni zautomatyzowaną konfigurację. Nie powinno wymagać od klientów ręcznego tworzenia stron.
Ponadto niektóre z innych powszechnie akceptowanych odpowiedzi obejmują utworzenie strony statycznej poza WordPress, która następnie zawiera tylko niektóre funkcje WordPress w celu uzyskania nagłówka i stopki tematycznej. Chociaż ta metoda może działać w niektórych przypadkach, może to bardzo utrudnić integrację tych stron z WordPress bez uwzględnienia wszystkich jego funkcji.
Myślę, że najlepszym, w pełni zautomatyzowanym podejściem byłoby utworzenie strony przy użyciu
wp_insert_post
i umieszczenie jej w bazie danych. Przykład i świetna dyskusja na ten temat oraz sposoby zapobiegania przypadkowemu usunięciu strony przez użytkownika można znaleźć tutaj: wordpress-automatycznie-tworząc stronęSzczerze mówiąc, jestem zaskoczony, że takie podejście nie zostało jeszcze wspomniane jako odpowiedź na to popularne pytanie (jest publikowane od 7 lat).
źródło
Spróbuj tego:
źródło
Oprócz utworzenia niestandardowego pliku szablonu i przypisania tego szablonu do strony (jak w przykładzie w zaakceptowanej odpowiedzi) istnieje również sposób z konwencją nazewnictwa szablonów, której WordPress używa do ładowania szablonów (hierarchia szablonów).
Utwórz nową stronę i użyj informacji o tej stronie jako nazwy pliku szablonu (utwórz plik szablonu o nazwie page- {slug} .php ). WordPress automatycznie załaduje szablon, który pasuje do tej reguły.
źródło
Wystarczy utworzyć
page-mytitle.php
plik do folderu bieżącego motywu, a na pulpicie nawigacyjnym stronę „mytitle” .Następnie, gdy wywołasz stronę za pomocą adresu URL, zobaczysz stronę mytitle.php. Musisz dodać HTML, CSS, JavaScript, wp-loop itp. Do tego pliku PHP (
page-mytitle.php
).źródło
źródło
źródło
Możesz nazwać swój plik „newpage.php” - umieść go w katalogu motywów w
wp-content
. Możesz ustawić go jako szablon strony (patrz http://codex.wordpress.org/Pages .. ) Lub możesz dołączyć go do jednego z plików PHP w swoim motywie, np. Header.php lub single.php.Co więcej, stwórz motyw potomny i umieść go tam, aby zostawić kod motywu w spokoju i łatwiej go zaktualizować.
http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates
źródło
Możesz także bezpośrednio użyć strony PHP, np. Utworzyć stronę PHP i uruchomić pełną ścieżkę.
Na przykład http: //localhost/path/filename.php
źródło