ワードプレスのget_extended関数の使用方法・解説

概要

get_extended関数は、WordPressの投稿コンテンツから「more」タグ以降のテキストを取得するための関数です。この関数は以下のような機能を実装する際によく使われます。

  1. 投稿記事のプレビュー表示
  2. カスタムフィールドに記事の一部を表示
  3. 記事の要約を作成
  4. ディスカッションボードでのスレッド管理
  5. テーマでのカスタムレイアウトを適用
  6. コンテンツの分割表示
  7. サイドバーウィジェットへの記事内容の表示
  8. モーダルウィンドウでの詳細表示

この関数は、wp-includes/post.phpファイルに含まれています。

構文

get_extended( string $content )

パラメータ

  • $content: (string) 投稿のコンテンツ。省略可能ですが、通常は投稿の本文を渡します。

戻り値

  • (array) $extended$extraの2つの要素を持つ連想配列。$extendedには「more」タグ以降のコンテンツが格納され、$extraには残りのコンテンツが格納されます。

関連する関数

使用可能なバージョン

  • WordPress 2.0以降で使用可能です。

各バージョンにおける非推奨または削除情報

  • 現在までにget_extended関数は非推奨または削除されたことはありません。

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1

$post = get_post( $post_id );
$extended = get_extended( $post->post_content );
echo $extended['main']; // "more"タグ前のコンテンツを表示

このコードは、指定した投稿IDの投稿内容から「more」タグ前のコンテンツを取得して表示します。

サンプルコード2

$content = "これはテスト投稿です。<!--more-->ここから追加コンテンツです。";
$extended = get_extended( $content );
echo $extended['extended']; // "more"タグ以降のコンテンツを表示

このサンプルは、明示的に定義されたコンテンツから「more」タグ以降のテキストを表示します。

サンプルコード3

function custom_excerpt( $content ) {
    $extended = get_extended( $content );
    return $extended['main'] . '...';
}
add_filter( 'the_excerpt', 'custom_excerpt' );

このコードは、投稿の抜粋を生成する際に、コンテンツの「more」タグ前の部分を表示し、末尾に省略記号をつけます。

サンプルコード4

$post = get_post( $post_id );
if ( has_excerpt( $post_id ) ) {
    $excerpt = $post->post_excerpt;
} else {
    $extended = get_extended( $post->post_content );
    $excerpt = $extended['main'];
}
echo $excerpt;

このコードは、投稿に抜粋がある場合はそれを、ない場合は「more」タグ前のコンテンツを使用して表示します。

サンプルコード5

$content = "これは例です。さらに情報があります。<!--more-->ここが追加情報です。";
list( $main, $extra ) = get_extended( $content );
echo '<h1>メインコンテンツ:</h1>' . $main;
echo '<h1>追加コンテンツ:</h1>' . $extra;

このコードは、提供されたコンテンツを「more」タグで分割し、メインと追加のコンテンツをそれぞれ異なるセクションで表示します。

この関数について質問する


上の計算式の答えを入力してください