2011-10-28 114 views
0

我也在Wordpress論壇發佈了這個: http://wordpress.org/support/topic/how-to-query-post-content-with-javascript?replies=1 但沒有人回覆,所以我想我也會試試。爲什麼我不能從php腳本查詢wordpress數據庫?

我將闡述我正在使用的整個代碼,但是它要歸結的是,如何從wordpress數據庫獲取帖子的內容並用該代碼替換HTML的內容內容?

在頁面加載時間,我有PHP的,對相應圖像生成帖子ID,即: onmousedown="javascript:getDescription('<?php the_ID(); ?>');"

onmousedown()調用傳遞我要查詢的PHP文件後的值一個javascript ,即:

`<script type="text/javascript"> 
function getDescription(for_id) { 
    $.ajax({ 
     type: 'GET', 
     url: "<?php bloginfo('template_url');/>/assets/includes/get-description.php?id=" + for_id, 
     success: function(data, textStatus, jqXHR){ 
      $('#textdescription').html(data); 
     } 
    }); 
} 
</script>` 

php文件得到-description.php那麼應該做的查詢並返回帖子內容,其中的JavaScript,然後利用更新<div>內容:

`<p><?php 
$contentVar = $_GET['id']; 
$post = get_post($contentVar); 
$content = $post->post_content; 
echo $title; 
?></p>` 

所以這是所有測試和工作,除了PHP文件,應該做數據庫查詢---我不能讓它返回任何東西,當我查詢。我可以返回其他內容,包括我的傳入帖子ID,所以我知道所有的管道已連接並正在工作。

我不是一個非常複雜的程序員,所以它可能是一些非常簡單和基本的東西,我錯過了。但如果你能幫我弄明白,我會永遠感激不盡。謝謝!

+0

你是否收到任何錯誤信息?如果get_post()函數在wordpress構造之外工作,我會很驚訝。 –

+0

我收到500內部服務器錯誤。但我只是沒有足夠的工具,在我的處置,以更詳細地把它釘住...... :( – catdotgif

回答

0

您是否嘗試過在PHP文件中包含必要的WordPress標題,您希望從get_post()撥打電話?

嘗試slappin這在你get-description.php文件的頂部...

<?php require_once ('path/to/wordpress/wp-blog-header.php');?> 

頭應該包括在全球範圍內(在任何函數之外),或者你可能會遇到一些問題與WordPress認爲它尚未配置/安裝。

你也可以試試這裏的指示:Integrating WordPress with Your Website

+0

我覺得它必須是這樣的 - 在PHP文件中提取檢索代碼是直出的代碼,所以很明顯,我需要做一些事情來告訴它如何處理這些命令,儘管我嘗試了'。/ wp-blog-header.php',並且包含該文件根本不返回任何內容。 – catdotgif

0

考慮把你的GET-description.php代碼作爲插件的一部分,然後看看Wordpress Codex一步一步的指示,就如何使這一切工作。具體來說,查看器對面的Ajax和'wp_ajax_my_action',在你的情況下可能是'wp_ajax_get_description'。

快速更新:請記住,調用get_post()會遍歷所有標準過濾器,因此您還應該快速檢查是否有其他插件影響調用。

+0

是的,我想這裏的更好的解決方案可能是不完全用ajax做這件事,而只是在鏈接被按下時加載實際頁面。我正在爲我正在使用的主題進行最小程度的自定義,但我認爲無論如何這都會更好。但我想知道如何做到這一點,爲未來。 – catdotgif

相關問題