![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam wordpress, chcę wstawić jego nagłowek i stopkę do templatów innych skryptów, które używam. Najprościej byłoby skopiować kod html z wyniku, i wkleić, ale wtedy stracę dynamikę - modyfikowanie menu itp. Wordpress daje możliwość wstawienia nagłówka i stopki poprzez kod:
Niestety powstaje wtedy u mnie konflikt skyptów, nazw funkcji, i takie wstawienie nie działa. Do tego mam jeszcze powiązane bazodanowo phpBB z Wordpressem stąd szukam innego rozwiązania. Wymyśliłem, że wykonam "na boku", w osobnym pliku (test.php) to powyższe, a potem wynik już jako czysty HTML+CSS, dodam do header templatki mojego skryptu (header.html) i będzie działało. Zrobiłem to tak: test.php
Całość includuję tak do header.html (templatka z obługą php):
Niestety znowu powstaje konflikt, czyli nie includuję wyniku, tylko jednak skrypt. Potem wpadłem na pomysł, że przecież konflikty biorą się z wp-load.php, zatem trzeba go includować do bufora, by nie trafił do header.html. Zrobiłem tak: test.php
Niestety nic to nie zmieniło. Przetestowałem sam plik test.php tak jak poniżej, i działa. Po includzie do header.html niestety nie błąd redeklarowanej funkcji. test.php
Dla testu zapisałem zawartość (przez fwrite()) $header_output do pliku tekstowego - wygenerował się właśnie czysty html, bez zawartości plików php. Zatem wydaje się, że coś jednak jest nie tak z includami... W teorii mógłbym teraz includować zawartość tego pliku textowego, ale uważam za niewydaje za każdym razem generowanie pliku textowego? Czy ktoś może mi poradzić gdzie popełniam błąd, ewentualnie inne rozwiązanie? Co zrobić, by zawartość wp-load.php nie trafiała do templatki? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
include* i require* służą aby dołączyć kod do skryptu.
Jeśli chcesz dołączyć sam wynik bez skryptu skojrzystaj z file_get_contents(); Czyli.. jak próbowałeś tak: Cytat
Żeby działało musisz tak:
Ten post edytował Ksar 12.05.2015, 00:28:31 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumie, get_file_contents zapisuje przecież zawartośc do zmiennej - a ja chcę wyonać wszystko to, co się dzieje w wp-load.php i header.php.
Jak zrobiłem
To i tak to nie zadziała, a jak dam bez echo - podobnie, nie wykona się... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
zawsze możesz dać
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Utwórz sobie plik, np: header-custom.php i wklej do niego:
A w miejscu gdzie chcesz wstawić jego efekt, dodaj: Ten post edytował IProSoft 12.05.2015, 07:56:11 -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
Niestety tak nie działa. Zamiast tego wstawia mi po prostu zawartość custom-header.php, czyli:
<?php require_once('wp-load.php'); include_once('wp-content/themes/theme/header.php'); ?> a nie wykonany skrypt... |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż kod bo mi się wierzyć nie chce
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Lepiej rozwiąż konflikty nazw. Nie ma nic gorszego niż takie głupie triki jak ten z file_get_contents.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie ma nic gorszego niż takie głupie triki Są, uwierz mi na słowo ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
zawartosc test.php
<? require_once('wp-load.php'); include_once('wp-content/themes/theme/header.php'); ?> zawartość header.html
Kod źródłowy juz w przeglądarce header.html:
Czyli, że wstawia mi treść test.php, a nie wynik zawartych w nim skryptów. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 75 Dołączył: 5.06.2012 Skąd: Lębork Ostrzeżenie: (0%) ![]() ![]() |
Masz podać pełen link z przeglądarki a nie ścieżka...
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Otwiersz short tagiem w pliku test.php,
zamień na
-------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
bez zmian, znowu treść test.php w header.html zamiast wykonanego header.php / wp-load.php
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
A gdy odpalasz w przeglądarce plik http://www.domena.pl/wp/test.php pojawia się tekst ?
Jeśli tak to nie parsuje Ci pliku jako PHP -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
pojawia się, jak już pisałem, poprawnie, czyli to, czego oczekuję - grafika, rozwijane menu etc. zatem parsuje.
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 150 Pomógł: 31 Dołączył: 10.01.2007 Skąd: Bydgoszcz/Inowrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 479 Pomógł: 97 Dołączył: 6.09.2011 Skąd: php.net :) Ostrzeżenie: (0%) ![]() ![]() |
Kod w taki sposób pojawi się w wypadku użycia odwołania do pliku, np file_get_contents('/wp/test.php');, więc upewnij się, że wpisujesz też adres domeny.
lub Spróbuj tak:
Ten post edytował IProSoft 13.05.2015, 07:53:08 -------------------- Manual prawdę Ci powie.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 11.05.2015 Ostrzeżenie: (0%) ![]() ![]() |
I tu ciekawostka: Forbidden 403, czyli coś po drodze jest "zabronione", chyba nie chmody... Może coś template jednak blokuje?
EDIT: Kombinowałem - nie wiem dlaczego tak się dzieje. Może ktoś mi coś podpowiedzieć? Ten post edytował bodzio16 13.05.2015, 18:52:01 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 20:41 |