2011-01-09 17 views
0

これは簡単な質問です。しかし、どうやって起動時にWordpressにページや投稿を読み込ませて、代わりに私のカスタムページを読み込ませるのを無視するのですか? Wordpressのブートストラッププロセスでは、どのPHPページが読み込まれるのかが決まっていますか?Wordpressにカスタムページが含まれています

は、私は次のURLを持つことになります。

bt.local/WP /広告/

1とads.phpと呼ばれるのphp-ページにロードされることを好きで、ADID = 1で広告をロードします。

これを解決する最良の方法は何ですか? (広告と呼ばれる投稿はなく、広告と呼ばれるページはありません)。

ありがとうございました!

KR

ヨーゼフ

答えて

0

あなたはそのためtemplate_redirectアクションを使用することができます - 例を:

add_action('template_redirect', 'my_template_loader'); 


function my_template_loader() { 
    if(get_query_var('adid')) { 
     locate_template(array("your-custom-page.php"), true); 
    } 
} 

編集:

それに加えて、あなたのカスタムURLを追加するためのいくつかの新しい書き換えルールを必要とする - 基本的な情報はここにhttp://codex.wordpress.org/Function_Reference/WP_Rewriteです

あなたのルールでは、そのようなものになります:

$newrules['ads/(\d*)$'] = 'index.php?pagename=ads&adid=$matches[1]'; 

これは、セットアップする広告をいわゆる「プレースホルダ」のページを必要とし、それに加えて、あなたがそのようなあなたの新しいクエリVAR adid登録する必要があります:あなたの答えのための

add_filter('query_vars', 'add_adid_var'); 
function parameter_queryvars($qvars) { 
    $qvars[] = ' adid'; 
    return $qvars; 
} 
+0

魅力的な作品です! $ wp_query-> get( 'pagename')というページ名を抽出するために、$ postの代わりにglobal $ wp_queryを使用しました。それから私はテンプレートを見つけて、私のカスタム広告/ index.phpファイルをロードしました。どうもありがとうございました! – Josef

+0

URLにIDを追加するときに私の$ wp_queryが機能しなかったことに気付いただけです。例えばbt.local/wp/ads/1のように - 1がそれを壊しました。あなたが提案した$ postを使用した場合、私はページ名 "ads"をどこにも見つけることができません。それ、どうやったら出来るの? – Josef

+0

は、上記の書き換えとクエリのバーについての情報を追加しました – roman

0

<?php include('custompage.php'); ?> ???

+0

感謝を。しかし、問題は、変数とWordPressのプロセスページのロード方法を処理することに関連しています。たとえば、WP AdminでAboutというページを作成した場合、URL/WP/Aboutを入力するときにAboutページが表示されます。しかし、URL/WP/Addを入力するときに呼び出されるカスタムページがある場合、Wordpressでそのページを見つける方法を教えてください。 Wordpressで作成されていないページを入力すると、「ページが見つかりません」と表示されます。私はそれが私の質問を明確にしたと思う。 いい夜を過ごしましょう! – Josef

+0

wordpressが探しているディレクトリ(ies)に存在する場合は、wordpressで作成されていなくても表示されます – tekknolagi

関連する問題