2012-04-25 94 views
0

用戶單擊鏈接後,我想要在當前頁面中加載相應的頁面。這個ajaxpage的主題應該與它的非ajax頁面不同。通過Ajax使用不同模板的Wordpress加載頁面

該頁面將由客戶端以不同的語言添加。所以沒有固定的ID和客戶端不應該兩次添加相同的文章(1爲正常和1爲AJAX)。此規則手動覆蓋模板。

第一部分,ajax加載內容很容易做到,但我不知道如何以不同的方式顯示內容。

所以

domain.com/product/car直接訪問顯示了使用單product.php作爲模板,其中包括頁眉和頁腳產品(汽車)。

ajax加載domain.com/product/car會顯示一個產品(汽車),但沒有頁眉和頁腳,也許一些小的佈局更改。

我最初的想法是動態設置一些模板(template-product-ajax.php),但林不知道這是可能的或如何。

總之,我怎麼能在加載頁面Ajax時創建一個不同的模板/佈局/視圖的WordPress

+0

查看下面的答案,讓我知道它是否有幫助或者是否需要更多信息。如果您認爲自己掌握了它的工作原理,請標記爲已回答。 – maiorano84 2012-04-25 15:36:55

回答

1

您將有一系列的變量傳遞,其中包括要頁/後ID加載,你想要加載什麼類型的對象('page'或'post')和一個布爾值來確保沒有加載標準的get_header()函數(因爲你只需要頁面的內容,而不是標題)。

模板內的某處可以使用該布爾值來確定模板的行爲。例如:

<?php 
/*Template Name: AJAX Content*/ 
if(!isset($_POST['bool'])) 
    get_header(); 
?> 
<div id="body"> 
    <div class="page_content"> 
    <?php 
     if(isset($_POST['bool'])) 
     { 
      $object = $_POST['ob_type'] == 'page' ? get_page($_POST['PID']) : get_post($_POST['PID']); 
      echo $object->post_content; 
      /*echo '<pre>';var_dump($object);echo '</pre>';//Uncomment this section if you want to know what you can access with variable $object*/ 
     { 
     else 
     { 
      //STANDARD LOOP 
     } 
    ?> 
    </div> 
</div> 

這是未經測試,但它應該幫助你開始,如果你已經很熟悉AJAX調用和POST數據發送到一個單獨的頁面。

相關問題