ページをまるごとインクルードするのは効率の面から言ってもあまりよくない方法ではないですかね?
http://ja.forums.wordpress.org/topic/5723?replies=6にもあるように
wp-load.php を Require すれば好きにWPの関数が使えますが、そういうのではなくてですかね?
の方がよいと思いますよ?
確かに非効率なのですが、すべてを取り込みたいので・・・
そもそも、不可能なのでしょうか?
WordPress ではなく、PHP の質問ですね。マニュアルを読みましょう。
PHP: include – Manual
shimizou さんが書かれているように
<?php include 'index.php?cat=4'; ?>
とすると、PHP は index.php?cat=4 と言うファイルをローカルファイルシステムから探そうとします。
HTTP経由で include() するには、以下のようにする必要があります。
<?php include 'http://example.com/index.php?cat=4'; ?>
ただし、このコードはどう考えても非効率的です。オススメはできません。
shokun0803 さんの言われているように wp-load.php を Require する方が良いと思います。
実は、そのページを参考にして、
<?php include ‘http://example.com/index.php?cat=4’; ?>のようにやってみましたが、やはりダメだったんです。
実際に試しているのはhttp://www.speedster.jp/wp/index.phpなのですが、
画像のリンク切れなどありますが、
http://speedster.jp/wp/a.php
これが<?php $cat = 4; include ‘index.php’; ?>のばあいです。
http://speedster.jp/wp/b.php
これが<?php include ‘http://www.speedster.jp/wp/index.php?cat=4’; ?>の場合です。
根本的にミスがあるのでしょうか・・・
<?php include 'http://example.com/index.php?cat=4'; ?>
ですが WordPress サイトからのレスポンスは (X)HTML で返ってきます。
PHP のコードではないモノを include しても、意味が無いのでは?
<?php $cat = 4; include 'index.php'; ?>
の場合ですが $cat と言う変数は include された index.php にも引き継がれますが、そもそも WordPress では、この $cat と言う変数は使っていません。
カテゴリの表示は大まかに言って is_category() 関数の返り値が true だった場合に get_category_template() 関数を呼び出すことで実現されています。
決して $cat と言う変数に値が入っているかどうかなんてのは気にしていません。
というわけで、どうしても <?php $cat = 4; include 'index.php'; ?> の形式で行きたいのであれば、以下のようなリンクにすれば手っ取り早いでしょう。
http://speedster.jp/wp/a.php?cat=4
根本的にミスがあるのでしょうか・・・
はい。
index.php を include して、実現しようとしているところが、根本的な間違いです。
素直に wp-load.php を include して、テンプレート関数を使いましょう。
http://speedster.jp/wp/a.php?cat=4
をincludeしても何も表示されません。
wp-load.php を includeして、対象のカテゴリーの一覧を表示することはできましたが、
テーマの形式で表示することは可能なのでしょうか?
http://speedster.jp/wp/a.php?cat=4
をincludeしても何も表示されません。
それ include しちゃ、だめです。
どうしても、すべてを取り込みたいのであれば
<?php echo file_get_contents('http://example.com/index.php?cat=4'); ?>
って所でしょうか。
ただし、これはオススメできません。
こんなことやるくらいなら .htaccess なりで mod_rewrite を使って URL を変更したほうが良いと思います。
.htaccess での mod_rewrite の設定方法は「mod_rewrite 設定」とかで検索してください。
やりたいことが見えていないのでこれ以上のアドバイスは難しいのですよ。
まず、「なぜ、htmlファイルにテーマごとインクルードしたいのか?」がわからないのです。
やりたいことを具体的に説明すれば、今行おうとしていることがもっと簡単にできる可能性があります。難しく考えすぎていて、この方法じゃなきゃだめだと思い込んでいませんか?
より的確なアドバイスが欲しいならば、やりたいことを具体的に提示しましょう;)
wokamotoさんのおっしゃるとおりの方法で、対応できました。
が
やはり無理があるようですね・・
shokun0803さんと同じように、皆さんが「なぜ?」と思われていると思います。
結局は、現在あるhtmlをムダにしたくないので、wordpressのいいとこ取りを・・と思ったのですが、かえって煩雑になってしまいました。
WordPressで新規に作り直す方向で進めたいともいます。
この度は、どうもありがとうございました。