【WordPress】投稿の本文を取得する方法

WordPressサイトを運営していると、投稿の本文からテキストだけを取得したい場面があるかもしれません。例えば、特定のページで本文のテキストを抽出して表示する必要がある場合などです。今回は、WordPressで簡単に投稿本文のテキストを取得する方法についてご紹介します。

スポンサーリンク

the_content() 関数を使用する方法

the_content() 関数は、WordPressで投稿の本文を表示するための便利な関数です。この関数を使用して本文のテキストだけを取得することができます。

$post_id = get_the_ID(); // 現在の投稿のIDを取得

$content = get_post_field('post_content', $post_id); // 投稿の本文を取得
$content = strip_tags($content); // HTMLタグを削除

echo $content;

wp_strip_all_tags() 関数を使用する方法

$post_id = get_the_ID(); // 現在の投稿のIDを取得

$content = get_post_field('post_content', $post_id); // 投稿の本文を取得
$content = wp_strip_all_tags($content); // HTMLタグを削除

echo $content;

よくある質問(FAQ)

Q. get_the_content()とthe_content()の違いは何ですか?
A. the_content()はフィルターを適用してエコー(出力)します。get_the_content()はフィルターを適用せずに生のコンテンツを返します(echo/returnの違い)。テンプレートで直接表示するにはthe_content()、変数に格納して加工するにはget_post_field(“post_content”, $id)またはapply_filters(“the_content”, get_the_content())を使います。
Q. 特定の記事の本文をテンプレート外から取得するにはどうすればよいですか?
A. get_post_field("post_content", $post_id)でIDを指定してpost_contentを取得できます。ループ外でも使えます。フィルターを適用するにはapply_filters("the_content", $content)でショートコードの展開やautopのpタグ変換が行われます。
Q. 本文からh2タグの内容だけを取得するにはどうすればよいですか?
A. preg_match_all()でh2要素を抽出します:preg_match_all("#<h2[^>]*>(.+?)</h2>#", get_the_content(), $matches); $headings = $matches[1];。目次を自動生成する場合によく使われるパターンです。

まとめ

これらの方法を使えば、WordPressサイトで本文のテキストを取得する際に便利です。テンプレートファイルやプラグインの開発など、さまざまなシナリオで活用できることでしょう。

WordPressサイトのカスタマイズや開発において、これらの手法を活かしてスマートなコンテンツ表示を実現しましょう。