WordPress(ワードプレス)で記事の内容を変数に入れて扱うときのメモ

ループ内で記事の値を表示する場合、「the_content」や「the_excerpt」などを使うことが多いですが、$post->contentなどで直接値を取得して使用する場合もありますよね。その値についてのメモ、です。

ループ内では$postという名称のオブジェクトに該当記事に関する情報が整理されて入っています。

$postの中身を参照するには普段よく使ってるechoだとエラーになってしまいます。この場合Objectの中身を表示するprint_r()という関数を使います。

preタグで挟むことで、Objectの中身を整形して表示させることができます。

<?php
echo ‘<pre>’;
print_r($post);
echo ‘</pre>’;
?>

それで表示させると、$postの中身は以下のようになっています。

stdClass Object
(
    [ID] => 48
    [post_author] => 1
    [post_date] => 2011-02-01 17:57:58
    [post_date_gmt] => 2011-02-01 08:57:58
    [post_content] => テスト投稿です。
    [post_title] => テスト投稿20110201
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => open
    [ping_status] => open
    [post_password] => 
    [post_name] => %e3%83%86%e3%82%b9%e3%83%88%e6%8a%95%e7%a8%bf20110201
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2011-02-21 16:53:43
    [post_modified_gmt] => 2011-02-21 07:53:43
    [post_content_filtered] => 
    [post_parent] => 0
    [guid] => http://ligtest.sakura.ne.jp/wp_test/?p=48
    [menu_order] => 0
    [post_type] => post
    [post_mime_type] => 
    [comment_count] => 0
    [ancestors] => Array
        (
        )

    [filter] => raw
)

それぞれの値の意味はなんとなく想像ができるかと思います。これらの値は、$post->[名前]とすることで参照できます。ここに含まれている情報は全て、ループの中で利用可能で、逆に言えば、ここに含まれていない値は、簡単には引っ張れない、ということですよね。

例えばauthorを表示したい場合、以下のような書き方になります。

<?php echo $post->post_author; ?>

上記のprint_rは配列にも使えます。$cat = get_the_categoryなんて書いたときに、$catにどういう構造でカテゴリ情報が入ってきているのか、なんてことを確認するのにも使えますね。

以上、ほぼ個人的メモ、でした。