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:
<? require('wp-load.php'); include('wp-content/themes/theme/header.php'); ?>
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
<? require('wp-load.php'); include('wp-content/themes/theme/header.php'); ?>
Całość includuję tak do header.html (templatka z obługą php):
<? include('test.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
<? require('wp-load.php'); include('wp-content/themes/theme/header.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
<? require_once('wp-load.php'); include_once('wp-content/themes/theme/header.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?