2011-11-07 43 views
0

我能夠輸入的WordPress的數據庫,表wp_commentmeta,通過在評論表單自定義字段,這些DATAS:如何通過存儲在wp_commentdata中的meta_value過濾WordPress中的註釋?

meta_id | comment_id | meta_key  | meta_value 
-------------------------------------------------- 
9  | 6   | commentoptions | option1 
10  | 7   | commentoptions | option2 

現在我試圖找到一種方法來過濾的意見根據meta_value值在單個頁面上顯示兩列,左側一列和右側一列。我的意思是:第一條評論必須在左邊的專欄中留言,下一條評論必須在右邊的專欄中。起初,我認爲「我很幸運,只需要創建兩個div,使用CSS定位它們,並使用wp_list_comments函數過濾註釋」,但是... wp_list_comments函數無法做到這一點。

有人可以建議我該怎麼做?提前致謝!

回答

0

編輯:這有點晚...我剛剛意識到我的原始答案是特定於發佈元數據。我將在下面留下我的原始答案,因爲它可能對抓取帖子的元字段有用。在頂部,您會發現獲取評論元字段的方法。

假設這些元值通過wordpress API進入數據庫,下面的代碼將幫助您獲取特定註釋的元值

修訂答:

<?php 
$comment_id = 123; 
$key = "commentoptions"; // change to whatever key you are using 
$single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use 

$meta_values = get_comment_meta($comment_id, $key, $single); 
?> 

原來的答案(適用於越來越元字段)

<?php 
$post_id = 123; 
$key = "commentoptions"; // change to whatever key you are using 
$single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use 

$meta_values = get_post_meta($post_id, $key, $single); 
?> 

您也可以使用如下所示get_post_custom_values(),這如果您對每個密鑰都有多個值,那麼這是一個更好的方法。如果您使用$ single = false,上面的代碼將執行相同的操作,但由於get_post_meta()函數的工作原理,它不是首選 - 如果只返回一個值,它將爲您提供實際的字符串值,否則返回值的數組。如果你有一個或多個鍵值,下面的方法將返回一個數組,所以它會導致更清晰,更直觀的代碼。

<?php 
$post_id = 123; 
$key = "commentoptions"; 

$meta_values = get_post_custom_values($key, $post_id); 
?> 
+0

非常感謝您的幫助,特別是因爲它太晚了!我可以從數據庫檢索數據(meta_value),但是......我不知道如何根據這個meta_value列出兩列中的評論。起初我想過這樣的事情:「wp_list_comments(array('meta_key'=>'commentoptions','meta_value'=>'option1'));」但wp_list_comments不提供此。任何建議將不勝感激。 – Morris

+0

@Morris一種方法是使用WP中的get_comments()函數。這將爲您提供所需評論的數據(您可以指定要檢索的帖子或評論ID)。結果是包含所有評論數據的數組。 – Bryan