2009-06-10 18 views
2

私は一般に、「あるべき能力」がウェブサイト上の複数の場所でページの正確なコピーを必要とするシナリオに遭遇します。実際にはコンテンツを複製するのではなく、強調表示されているナビゲーションセクションをオーバーライドしてからページを含めるだけです。最終ページは次のようになります。なぜ私はブログを含めることができないのですか?

<?php 
    $top_nav_item_id = 'teen'; 
    include('../interests/teacher-resources.php'); 
?> 

これは通常動作します。私は、ワードプレスで行われたブログカテゴリのためにこれを複製しようとしています。私が得意とするのは、私が何をしても空白のページだけです。私は次の行をすべて試しました:

<?php 
    include('../blog/index.php'); 
    include('../blog/type/teen/index.php'); 
    include('../blog/type/teen/'); 
    include('../blog/'); 
?> 

誰にもアイデアはありますか?これはURL書き換えのものですか?特定のカテゴリのテンプレートファイルを含める必要がありますか?

何か助けていただければ幸いです。

+1

あなたは、いくつかのapache rewrite magicをお持ちでない方がよいとお考えですか? –

答えて

0

この解決策は少しハックですが、問題はまずは少しのハックです。

私はなぜブログページを含めることができなかったのかという良い説明がありましたが、私にとってはうまくいくものはありません。

最後の解決策は、そのページのカテゴリテンプレートを直接変更することでした。最初に述べたように、私は$ top_nav_item_idを使って、ナビゲーションでハイライトされているメニュー項目を制御し、そのセクションに属するページの外観を与えます。これをオーバーライドするのではなく、単にクエリ文字列に対して条件付きにしました。ユーザーが自分のサイトの正当なリンクをたどっている限り、正しいクエリ文字列を取得して問題はありません。

$ _POSTはWordpressで無効になっています。 $ query_string(WPに組み込まれています)はある種のキャッシュを使用し、最初にロードされたときに常に表示されます。

最終溶液:助けようとしたすべての人へ

if(strtolower($_SERVER['QUERY_STRING'])=='display=teen') { 
    $top_nav_item_id = 'teen'; 
} else { 
    $top_nav_item_id = 'programs'; 
} 

感謝。

2

これは非常に複雑なトピックであり、最初からあまり目立たないトピックです。 Thisページをご覧ください。キーは、WordPressのブログヘッダーをリンクされたページで説明することです。また、WordPressエンジンのAPIの使用に関するリソースについては、WordPress Codexを参照してください。

6

PHP includeは、URLではなくファイルであるため、WordPressで公開されているURL名前空間にアクセスすることはできません。これらのファイルはディスク上に存在しません。 mod_rewriteはまずpretty URLをindex.phpという内部リクエストに変え、元のURLに基​​づいて本当に欲しいものを見つけ出し、データベースからたくさんのものを取り出してページを作ります。

0
ini_set('display_errors', true); 
error_reporting(E_ALL); 

何が問題なのかは分かりませんが、それはありません。たぶんWordpressは環境を見つけることができないかもしれません。多分いくつかの変数がオーバーライドされています...実際には、あなたは決して知らないので、グローバル変数、関数、クラスが交差するワードプレスのようなソリューションを含めることは悪い考えです。

PS:そして、ところで、includeはファイルシステムパスを使用しますが、URLは使用しません。

0

私は同様の問題について、コンテンツのコピーを含めるためにiframeを使用します。オリジナルのページを作成して、URLに「?embed = 1」フラグを探し、埋め込みフラグが存在する場合にのみ埋め込み可能なコンテンツをメインページに含めます(したがって、重複するツールバーやフレームを除外することができます)したがって、iframe src urlはコンテンツを埋め込むために?embed = 1タグを使用します。

関連する問題