[WordPress] 擷取指定 頁面(Page) 或 Post 的資料: get_post()

[WordPress] 擷取指定 頁面(Page) 或 Post 的資料: get_post()

假設要在某個 頁面(page) 或是 區塊(block) 中載入 特定頁面 的資料時, WordPress 有提供十分便利的方法來解決這個需求 get_post() :


取得 PostID :

使用方式很簡單,首先先要知道你要提取的 頁面(page) 或 文章(post) 的 PostID,在 編輯文章 或者 編輯頁面 的 url 上,可以清楚地知道:


使用 get_post():

接著就可以使用 get_post() 的方法,在指定的 template.php 裡調用了,如下:

這裡以取得 文章內容 為例

$id={your post id};
$post = get_post($id);
echo apply_filters('the_content', $post->post_content);

說明:

簡單來說 get_post() 的方法,會根據你傳入的 PostID 預設 會回傳一個 WP_Post物件(Object)如下:

WP_Post Object
(
    [ID] =>
    [post_author] =>
    [post_date] => 
    [post_date_gmt] => 
    [post_content] => 
    [post_title] => 
    [post_excerpt] => 
    [post_status] =>
    [comment_status] =>
    [ping_status] => 
    [post_password] => 
    [post_name] =>
    [to_ping] => 
    [pinged] => 
    [post_modified] => 
    [post_modified_gmt] =>
    [post_content_filtered] => 
    [post_parent] => 
    [guid] => 
    [menu_order] =>
    [post_type] =>
    [post_mime_type] => 
    [comment_count] =>
    [filter] =>
)

取得 WP_Post物件(Object) 後,我們在使用 WordPress Hook 提供的方法: apply_filters()

來在個別的 action 中,處理 WP_Post 物件(Object) 裡的項目,如上方 the_content 的範例:

echo apply_filters('the_content', $post->post_content);

相關連結:

WordPress 官網:getpost()
WordPress 官網:add_filter()

Facebook 功能: