HOME>WEBプログラム覚書>[WordPress3.5] WP_Post
[WordPress3.5] WP_Post
WordPress 3.5で$postの型がstdClassからWP_Postに変更になったのでメモ。
WP_Post
public WP_Post::get_instanse($id)
- int $id
- 投稿ID
作成されたオブジェクトはこんな感じ。
WP_Post プロパティ
<?php
object(WP_Post)[1852]
public 'ID' => int 1
public 'post_author' => string '1' (length=1)
public 'post_date' => string '2012-12-27 16:22:35' (length=19)
public 'post_date_gmt' => string '2012-12-27 16:22:35' (length=19)
public 'post_content' => string 'WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !' (length=126)
public 'post_title' => string 'Hello world!' (length=12)
public 'post_excerpt' => string '' (length=0)
public 'post_status' => string 'publish' (length=7)
public 'comment_status' => string 'open' (length=4)
public 'ping_status' => string 'open' (length=4)
public 'post_password' => string '' (length=0)
public 'post_name' => string 'hello-world' (length=11)
public 'to_ping' => string '' (length=0)
public 'pinged' => string '' (length=0)
public 'post_modified' => string '2012-12-27 16:22:35' (length=19)
public 'post_modified_gmt' => string '2012-12-27 16:22:35' (length=19)
public 'post_content_filtered' => string '' (length=0)
public 'post_parent' => int 0
public 'guid' => string 'http://35.wordpress.com/?p=1' (length=28)
public 'menu_order' => int 0
public 'post_type' => string 'post' (length=4)
public 'post_mime_type' => string '' (length=0)
public 'comment_count' => string '1' (length=1)
public 'filter' => string 'raw' (length=3)
?>
stdClassの時と基本的にはpublicなプロパティは変更ない感じだが
$filterってのが新しいっぽい??
public WP_Post::__constract($post)
- $post
- たぶんWP_Post
ふぁっ!?
public・・・??しかも引き数$postってWP_Postオブジェクトってこと??
WP_Postオブジェクトを生成するためにはWP_Postオブジェクトをささげる必要があるって
ことになるんだけど、どういうことなんだろうか。
実際のコードがこんな感じで、もうどうしていいのかわからないので見なかったことにしようと思います。
WP_Post::__constract
<?php
public function __construct( $post ) {
foreach ( get_object_vars( $post ) as $key => $value )
$this->$key = $value;
}
?>
とりあえずnewしないで普通にget_instanseを使うのがよいと思います。
public function filter( $filter )
- string $filter
-
raw - 数値フィールドの値のみ無害化
edit - 各種フィルターフックで無害化
db - 各種フィルターフックで無害化
display - 数値フィールドの値のみ無害化
attreibute - esc_attr() で無害化
js - esc_js() で無害化
public function __get( $key )
- string $key
public function __isset( $key )
- string $key
public WP_Post::to_array()
WP_Postのプロパティに加えancestors、page_template、post_category、tags_inputってプロパティが存在した場合その値も追加した配列を返す。
__set()を見る限りpage_template以外は必ず追加されるっぽい。
WP_Post::to_array()
<?php
array
'ID' => int 1
'post_author' => string '1' (length=1)
'post_date' => string '2012-12-27 16:22:35' (length=19)
'post_date_gmt' => string '2012-12-27 16:22:35' (length=19)
'post_content' => string 'WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !' (length=126)
'post_title' => string 'Hello world!' (length=12)
'post_excerpt' => string '' (length=0)
'post_status' => string 'publish' (length=7)
'comment_status' => string 'open' (length=4)
'ping_status' => string 'open' (length=4)
'post_password' => string '' (length=0)
'post_name' => string 'hello-world' (length=11)
'to_ping' => string '' (length=0)
'pinged' => string '' (length=0)
'post_modified' => string '2012-12-27 16:22:35' (length=19)
'post_modified_gmt' => string '2012-12-27 16:22:35' (length=19)
'post_content_filtered' => string '' (length=0)
'post_parent' => int 0
'guid' => string 'http://35.wordpress.com/?p=1' (length=28)
'menu_order' => int 0
'post_type' => string 'post' (length=4)
'post_mime_type' => string '' (length=0)
'comment_count' => string '1' (length=1)
'filter' => string 'raw' (length=3)
'ancestors' =>
array
empty
'post_category' =>
array
1 => string '1' (length=1)
'tags_input' =>
array
empty
?>
まだまだ微妙な感じなので今後に期待ってことで、まだ今は自分でラッパー書いておくといいと思います。
投稿日 |
2013年1月 8日 03:40 |
カテゴリ |
PHP |
タグ |
WordPress | 関数 |
トラックバック URL |
http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1318 |
コメント