Zastanawiam się, czy można użyć pliku szablonu dla określonego adresu URL bez konieczności tworzenia strony dla tego szablonu.
To mój uproszczony problem:
Utworzyłem stronę w WP z pewną zawartością linku, która wskazuje na konkretny adres URL z danymi końcowymi: (mysite.com/retail/?a=test&b=1234) .
Chcę, aby ten adres URL (sprzedaż detaliczna) automatycznie używał mojego pliku szablonu template-retail.php, który mam w katalogu motywów podrzędnych, bez konieczności tworzenia strony o nazwie „sprzedaż detaliczna” i wybrania z niej strony szablonu. W pliku template-retail.php jest tylko zewnętrzna zawartość, nic z samego Wordpress.
czy to możliwe?
template_redirect
lub punktu końcowegoOdpowiedzi:
Możesz po prostu spojrzeć na adres URL, załadować plik i wyjść.
Można to zrobić, gdy WordPress załadował swoje środowisko, np
'init'
. Na .Pamiętaj, że w ten sposób nigdy nie można użyć prawdziwej strony z informacją o reklamie „sprzedaż detaliczna”.
Jest to dość łatwe, ale także zakodowane na stałe, więc jeśli potrzebujesz tego na jednej stronie, jest w porządku. Jeśli chcesz kontrolować więcej adresów URL, zapoznaj się z rozwiązaniem zaproponowanym w tej odpowiedzi .
źródło
var_dump($url_path);
i zobacz, jak to wygląda, i dostosuj kod. Ta wartość zależy od Twojego prawdziwego adresu URL. Np. Niestandardowy domowy adres URL lub WP zainstalowany w podfolderze może być inny. @Keat$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/');
$templatename = 'retail';
$pos = strpos($url_path, $templatename);
if ($pos !== false) {
init
Akcja nie jest odpowiedni do tego, co starasz się osiągnąć. Zamiast tego powinieneś użyćtemplate_include
filtra. Połączysz to z,get_query_var
aby pobrać parametry adresu URL i sprawdzić, który szablon należy załadować. Oto linki:Kod:
źródło
Można to zrobić za pomocą WordPressa
page-templates
. https://developer.wordpress.org/themes/template-files-section/page-template-files/Potrzebujesz tylko kodu dla szablonu WordPress. W motywie WordPress możesz utworzyć szablon strony i zmienić jego nazwę na
page-id.php
Ta konkretna strona automatycznie ją podniesie i użyje szablonu.
Na przykład, jeśli twoja strona ma identyfikator 5874, nazwij szablon jako
page-5784.php
Możesz także nazwać szablon na podstawie informacji o stronie. Na przykład, jeśli slug strony jest,
hello-world
to nazwa szablonu topage-hello-world.php
Zobacz także: - https://developer.wordpress.org/files/2014/10/template-hierarchy.png
źródło
@ shivanand-sharma jest to doskonała i czystsza metoda ( https://developer.wordpress.org/themes/template-files-section/page-template-files/ ), aby utworzyć dowolną stronę jak każda inna w Wordpress, a jeśli chcesz aby ukryć twoją stronę, po prostu używam prostej i skutecznej wtyczki „ https://wordpress.org/plugins/exclude-pages/ ”
Muszę powiedzieć, że potrzebowałem adresu URL, aby utworzyć POST lub GET na mojej stronie i zapisać niektóre dane sesji „WC () -> session”, a to rozwiązuje ten i inne problemy, ponieważ możesz mieć kręgosłup niestandardowy kod php zawierający wszystkie „wymagania (wp-load”) itp. całego WordPressa, woocommerce itp. do pracy za pośrednictwem, mysite.com/index.php/MYPAGE .....
Musisz tylko:
Po pierwsze: utwórz plik w lokalizacji motywu jako szablon nowej strony, na przykład „wp-content / themes / mytheme / customtemplate.php” (Komentarz jest ważny, aby Wordpress mógł obserwować „Nazwa szablonu”):
Po drugie: Stwórz stronę w wordpress normalnie poprzez 'wp-admin'> Strony (Powiedzmy, że nazwa to MYPAGE lub możesz zmienić ślimak, jak chcesz) i oczywiście połącz poprzedni szablon jako szablon tej strony, która jest nazwą „WhthingName” w sekcji atrybutów szablonu.
Więc otwórzmy nową stronę „mysite.com/index.php/MYPAGE”, a zobaczysz.
Dodatki: Stwórzmy funkcje javascript lub jquery w koszyku, w kasie, cokolwiek możesz sobie wyobrazić wewnątrz „skryptowych” tagów HTML i dołącz kod w następujący sposób:
źródło