2010-01-21 20 views
1

如何從AJAX調用中使用WP功能。我查看了創建使用Ajax的插件的文檔,但我無法弄清楚如何將其應用於常規頁面和帖子。讓wordpress與AJAX玩好

有沒有簡單的方法來加載所有的東西而不使用他們的API?我有我的方式我喜歡做阿賈克斯,寧可不使用他們的東西。

這是我的代碼絨毛版本:

使用Javascript(jQuery的):

$('.action.next_posts').click(function() { 
     var last_date = $(this).attr('title'); 
     //alert(); 
     $.ajax({ 
      url: WP_DIR+'functions.php?action=get_next_posts', 
      type: 'POST', 
      data: {date : last_date}, 

      success: function(response) { 
       alert(response); 
      }, 

      error: function(error) { 
       alert("error"); 
      } 
     }); 

    }); 

的functions.php(PHP):

// AJAX controller 

if(isset($_GET['action'])) { 
    require_once('../../../wp-config.php'); 

    require_once('../../../wp-includes/classes.php'); 
    require_once('../../../wp-includes/functions.php'); 

    wp(); 
    echo 'ok'; 
    echo bloginfo('name'); // NOT WORKING. TRIED adding actions.. 
    return; 
} 

回答

2

以下解決方案應該管用。您將繼續前進並直接發佈到WordPress安裝,並在WordPress完成所有查詢之前攔截請求。這種方法有一些注意事項,其中之一是某些緩存方法會干擾它,但它應該適用於您的目的。

此外,你說你不想使用指定的WordPress API,所以這應該是你的衚衕。

的JavaScript:

的functions.php

add_action('parse_request','my_request_parser'); 
function my_request_parser($wp) { 
    if('get_next_posts' == $_POST['action']) { 
     echo 'ok'; 
     bloginfo('name'); 
     exit(); 
    } 
} 
+0

句子。動詞。名詞。 – Karl 2010-01-21 05:28:41

+0

@Karl - 我的解決方案已經過測試和運作。它完成了OP要求的內容,但我已經編輯它以滿足您對幾句話的需求。 – nickohrn 2010-01-21 05:40:59

+0

太棒了!我希望這不會傷害我後來雖然..我有他們的API問題是他們使用JavaScript與JavaScript。我想不惜一切代價避免這種情況。有沒有另一種方式來從函數調用它,仍然避免混合JavaScript和PHP? – Matt 2010-01-21 21:54:46

相關問題