概要
get_extended
関数は、WordPressの投稿コンテンツから「more」タグ以降のテキストを取得するための関数です。この関数は以下のような機能を実装する際によく使われます。
- 投稿記事のプレビュー表示
- カスタムフィールドに記事の一部を表示
- 記事の要約を作成
- ディスカッションボードでのスレッド管理
- テーマでのカスタムレイアウトを適用
- コンテンツの分割表示
- サイドバーウィジェットへの記事内容の表示
- モーダルウィンドウでの詳細表示
この関数は、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」タグで分割し、メインと追加のコンテンツをそれぞれ異なるセクションで表示します。