No.5496
🍎Re:5494◆ありがとうございます!
🍎Re:5495◆PHPはWebサーバに実行させないと処理されないので、てがろぐのスキン内にそのまま埋め込んでも元のPHPソースがそのまま埋め込まれるだけになります。
WordPressのヘッダ・フッタをてがろぐ側に合成したい場合、いくつかの方法があります。
https://(設置ドメイン等)/wp-header.php のようなURLで wp-header.php を単独で実行した場合に、望みのヘッダが出力されますか? される場合は、以下の方法で合成できます。
ヘッダやフッタで何を出力しているのかに依ってどの方法を使うのが望ましいかは変わってきますが、シンプルなのはJavaScriptで合成する方法です。
まず、ヘッダを合成したい場所に(てがろぐスキン側に)<div id="wpHeader">(準備中)</div>などと書いて合成用空間を用意しておきます。
そして、スキンHTMLの末尾あたりに以下のJavaScriptを書きます。
<script>
fetch('https://(設置ドメイン等)/wp-header.php')
.then(response => {
if(!response.ok) {
throw new Error(`HTTPエラー: ${response.status}`);
}
return response.text();
})
.then(html => {
document.getElementById('wpHeader').innerHTML = html;
})
.catch(error => {
document.getElementById('wpHeader').innerHTML = `読み込めませんでした。エラー内容: ${error.message}`;
});
</script>
これで合成できるでしょう。上記のソースだと、エラーがある場合にはエラーメッセージがそのまま表示されますけども。その辺は、必要に応じてConsoleへの出力に留めるとか何かすると良いです。
なお、JavaScriptで合成するのでは意味がないケース(SEO関連のmeta要素を出力している場合など)では、
- 一旦サーバ側で wp-header.php を実行させた結果を temp-wp-header.htm 等のファイルに静的に出力する。
- その静的HTMLファイルを、てがろぐ側のスキンにINCLUDE記法で埋め込む。
なお、https://(設置ドメイン等)/wp-header.php のようなURLで wp-header.php を単独で実行した場合に、望みのヘッダが出力されない場合は、PHP側の依存関係を見直す必要がありますので、単純な合成はできません。
その場合は、「JavaScriptで実際にWordPressが生成するページを読んで、そのHTML内からヘッダ部分だけを抜き出して、それを合成する」みたいな処理を書く必要があるでしょう。(JavaScriptによる動的合成では困る場合は、その処理をPHPでして、結果を静的なHTMLファイルに出力しておいて、それをてがろぐ側のスキンにINCLUDE記法で埋め込む方法が使えます。)
※その辺の方法をご案内するためには、実際にどんなソースが出力されているのかを知らないと無理なので、問題のページ(URL)を教えて頂く必要があります。
- ユーザ「にしし」の投稿だけを見る (※時系列順で見る)
- この投稿と同じカテゴリに属する投稿:
- この投稿日時に関連する投稿:
- この投稿に隣接する前後3件ずつをまとめて見る
- この投稿を再編集または削除する





