將WordPress帖子作爲純數據結構使用有什麼竅門?使用API的WordPress帖子的正確方法是什麼?
傳統上,你用「循環」和輸出數據通過函數是這樣的:
<?php the_title(); ?>
<?php the_content(); ?>
這些功能轉儲文本直接進入響應。
使用WPDB $,我能找回樁的陣列是這樣的:
$posts = $wpdb->get_results("SOME SQL HERE", OBJECT);
我再拿到這是stdClass的對象數組...張貼十歲上下,我猜。他們有「post_title」等屬性,但沒有固定鏈接,這讓我認爲這不是「正確的」Post對象。此外,「POST_CONTENT」是不完整的HTML - 它仍然有換行符等
當遍歷這個數組,我發現我必須這樣做:
foreach ($events as $post)
{
setup_postdata($post);
...
這使這個帖子在全球範圍內。然後,我可以使用上述功能,寫出來的內容,並使用類似這樣的函數來獲取元數據:
$display_date = get_custom_field('display_date');
有沒有更好的辦法?這似乎...奇怪。有沒有辦法將一篇文章的完整表示作爲一個對象,包含所有的元數據,以及我需要從數據級別操作它的所有其他內容,而不是假設我想將輸出轉儲到響應中?
這是正確的。在某些情況下可以使用wpdb,但是WP_Query是蜜蜂爲所有事情而屈膝。它有你需要有效使用帖子的所有東西。該循環基本上是基於WP_Query構建的,但是如Sheikh所建議的那樣使用它將允許在沒有WPDB缺點的情況下進行定製。 – rncrtr 2013-04-29 02:19:57
WP_Query的結果是一個WP_Post對象的數組,這是朝着正確方向邁出的一步,但他們似乎還沒有永久鏈接。從這個對象中,我如何獲得一個帖子的URL?那麼帖子的自定義字段又如何?這些字段似乎也不在對象之上。 – Deane 2013-04-29 13:28:03
我發現它:get_permalink($ post-ID)。我仍然不明白爲什麼這不能成爲對象的財產。此外,我發現虛擬屬性會爲您提供元數據 - 只需將它們存在即可:$ post-> my_custom_field_name。 – Deane 2013-04-29 14:34:25