我敢肯定這是一個簡單的問題。但是,如何在啓動時獲得Wordpress,以忽略嘗試加載頁面或帖子,而是加載我的自定義頁面?當在WordPress的引導過程中,它決定哪個php頁面將加載?WordPress的包括自定義頁面
我將有以下網址:
bt.local/WP /廣告/ 1
,想一個PHP頁面調用ads.php將承載和的AdID = 1加載廣告。
解決此問題的最佳方法是什麼? (沒有稱爲廣告的帖子,也沒有稱爲廣告的頁面)。
謝謝!
KR
約瑟夫
我敢肯定這是一個簡單的問題。但是,如何在啓動時獲得Wordpress,以忽略嘗試加載頁面或帖子,而是加載我的自定義頁面?當在WordPress的引導過程中,它決定哪個php頁面將加載?WordPress的包括自定義頁面
我將有以下網址:
bt.local/WP /廣告/ 1
,想一個PHP頁面調用ads.php將承載和的AdID = 1加載廣告。
解決此問題的最佳方法是什麼? (沒有稱爲廣告的帖子,也沒有稱爲廣告的頁面)。
謝謝!
KR
約瑟夫
您可以使用該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]';
這需要一個「佔位符」頁面調用的廣告是建立和除了你必須註冊新的查詢變種adid
這樣的:
add_filter('query_vars', 'add_adid_var');
function parameter_queryvars($qvars) {
$qvars[] = ' adid';
return $qvars;
}
<?php include('custompage.php'); ?>
???
謝謝您的回答。但問題更多地涉及到處理變量和wordpress進程頁面加載的方式。例如 - 如果我在WP Admin中創建了一個名爲About的頁面,那麼在輸入URL/WP/About時會看到About頁面。但是如果我有一個自定義頁面,我想在輸入URL/WP/Add時被調用,我該如何讓Wordpress找到那個?如果我輸入一個不是在Wordpress中創建的頁面,它會說「找不到頁面」。我希望它能澄清我的問題。 祝你有個愉快的夜晚! – Josef
如果它存在於wordpress正在查找的目錄中,它將顯示出來,甚至不是用wordpress創建的。 – tekknolagi
工程就像一個魅力!我使用全局$ wp_query而不是$ post來提取頁面名稱:$ wp_query-> get('pagename')。然後我找到了模板並加載了我的自定義ads/index.php文件。非常感謝你! – Josef
只是注意到我的$ wp_query在將URL添加到URL時不起作用。例如bt.local/wp/ads/1 - 1破壞了它。如果我建議使用$ post,則無法在任何地方找到頁面名稱「ads」。我怎麼做? – Josef
添加了一些關於重寫和查詢變量的信息 – roman