WordPressで投稿のIDから投稿情報を取得しようとget_post()関数を使用したら、本文やタイトルは取得できるのですが、抜粋$post->post_excerptが取得できませんでした。
ググってみたら、解決方法をようやく海外のサイトで見つけたので、日本語の検索にもヒットするように、メモがてら紹介です。
photo by mkhmarketing
スポンサーリンク
目次
get_postで抜粋文を取得する方法
その方法というのが以下です。
global $post; $id = get_the_ID();//何らかの方法で投稿のIDを取得 $post_id = get_post($id);//投稿情報の取得 setup_postdata($post_id);//投稿記事に関連するグローバル変数を設定 $exce = $post_id->post_excerpt;//抜粋の取得
参考 WordPress › Support » post_excerpt bug in get_post?
ポイントとなるのが4行目でsetup_postdata()を行わないと、$post_id->post_excerptなどに内容がセットされないようです。
投稿をIDなどの取得方法は、以下のような方法でも良いですし、他にも方法はいろいろあると思います。
$id = url_to_postid( $url );
まとめ
僕は当初、get_post()関数を利用するだけで、抜粋が取得されるものだと思っていて、思わぬ不具合になってしまいました。
get_post()を使って、投稿情報を取得し抜粋などを利用する場合は、setup_postdata()を利用すると覚えておく必要があります。