[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()