get_post()
参照:WordPress Codex-get_post()
構文
get_post( ①$id[オプション] , ②$output[オプション] , ③$filter[オプション] )
get_post()の詳細
動 作
単数の投稿データを取得し、単数のWP_Postオブジェクトを返す。
複数の場合→get_posts()
$idで指定した場合:指定した投稿のデータをデータベースより取得。
$idで指定しない場合:現在の投稿のデータを取得。
返り値
WP_Postオブジェクトを返す。
存在しない・エラーの場合nullを返す。
引 数
①$id[デフォルト:null(現在の投稿)]
※null , 0を$idに指定した場合:
$GLOBAL[‘post’]を調べる。
データがあり → その内容。
データなし → nullを返す。
②$output[デフォルト:object]
返り値の値の指定
③$filter[デフォルト:raw]
無害化のコンテキスト
get_post()のコード
<?php 735 /** 736 * Retrieves post data given a post ID or post object. 737 * 738 * See sanitize_post() for optional $filter values. Also, the parameter 739 * `$post`, must be given as a variable, since it is passed by reference. 740 * 741 * @since 1.5.1 742 * 743 * @global WP_Post $post Global post object. 744 * 745 * @param int|WP_Post|null $post Optional. Post ID or post object. Defaults to global $post. 746 * @param string $output Optional. The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to 747 * a WP_Post object, an associative array, or a numeric array, respectively. Default OBJECT. 748 * @param string $filter Optional. Type of filter to apply. Accepts 'raw', 'edit', 'db', 749 * or 'display'. Default 'raw'. 750 * @return WP_Post|array|null Type corresponding to $output on success or null on failure. 751 * When $output is OBJECT, a `WP_Post` instance is returned. 752 */ 753 function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) { 754 if ( empty( $post ) && isset( $GLOBALS['post'] ) ) { 755 $post = $GLOBALS['post']; 756 } 757 758 if ( $post instanceof WP_Post ) { 759 $_post = $post; 760 } elseif ( is_object( $post ) ) { 761 if ( empty( $post->filter ) ) { 762 $_post = sanitize_post( $post, 'raw' ); 763 $_post = new WP_Post( $_post ); 764 } elseif ( 'raw' == $post->filter ) { 765 $_post = new WP_Post( $post ); 766 } else { 767 $_post = WP_Post::get_instance( $post->ID ); 768 } 769 } else { 770 $_post = WP_Post::get_instance( $post ); 771 } 772 773 if ( ! $_post ) { 774 return null; 775 } 776 777 $_post = $_post->filter( $filter ); 778 779 if ( $output == ARRAY_A ) { 780 return $_post->to_array(); 781 } elseif ( $output == ARRAY_N ) { 782 return array_values( $_post->to_array() ); 783 } 784 785 return $_post; 786 } ?>