【WordPress】get_postで投稿・固定ページのデータを取得する例

今回はWordPressでget_post関数を使用し、投稿や固定ページの指定した情報を取得する例となります。
get_post関数について
get_post()は、指定した投稿の情報をデータベースから返す関数となります。指定した投稿が存在しないかエラーが発生した場合は、nullを返します。
get_post関数で投稿の情報を取得する例
以下はget_post関数を使用する例となり、現在の投稿オブジェクト取得し、その中から指定したデータを変数にセットしています。
<?php
// 現在の投稿オブジェクトを取得
$post_data = get_post();
// 本文を取得
$content = $post_data->post_content;
// 投稿IDを取得
$ID = $post_data->ID;
// スラッグを取得
$slug = $post_data->post_name;
// タイトルを取得
$title = $post_data->post_title;
// 投稿日時を取得
$date = $post_data->post_date;
// ページのURLを取得
$url = $post_data->guid;
?>
上記例の他にも取得できる戻り値はあります。詳しくは文末の参考サイトを確認してみてください。
取得したデータを出力する場合
取得したデータを出力する際にはechoなどを使用します。
また、セキュリティ対策として出力するデータによっては無害化を行います。データの無害化については以下のリンク先を参考にしてみてください。
get_post関数のパラメータ
get_post( $id, $output, $filter );
- $id (省略可)
- 取得したい投稿または固定ページの IDを指定。省略した場合は現在の投稿。
- $output (省略可)
- 戻り値の型を以下の値で指定できます。
'OBJECT' を指定した場合は投稿オブジェクト 。省略した場合も 'OBJECT'となります 。
'ARRAY_A' を指定した場合は連想配列(フィールド名がキーとなります)。
'ARRAY_N' - を指定した場合はインデックス配列。
- $filter (省略可)
- 無害化の種類を以下の値で指定できます。
'raw' - 数値フィールドの値のみ無害化。省略した場合も 'raw'となります 。
'edit' - 各種フィルターフックで無害化。
'db' - 各種フィルターフックで無害化。
'display' - 各種フィルターフックで無害化。
'attreibute' - 各種フィルターフックの後、esc_attr() で無害化。
'js' - 各種フィルターフックの後、esc_js() で無害化。