ワードプレスのwp_trim_excerptフィルタの使用方法・解説

概要

wp_trim_excerptフィルタは、投稿やページの抜粋を取得する際に、抜粋の内容を変更や調整するために使用されます。このフィルタは、特に以下のような機能を実装する際に役立ちます。

  1. 自動生成された抜粋のカスタマイズ
  2. 抜粋の最大文字数の指定
  3. 抜粋内のHTMLタグの除去
  4. 特定の文字列を抜粋に追加する
  5. 条件に応じた抜粋内容の変更
  6. 抜粋のカスタムフォーマッティング
  7. 特定のカテゴリーやタグに基づく抜粋のフィルタリング
  8. 抜粋の先頭にアイキャッチ画像やその他の情報を追加する

構文

apply_filters( 'wp_trim_excerpt', $text, $raw_excerpt, $post );

パラメータ

  • $text (string): 抜粋として表示されるテキスト。
  • $raw_excerpt (string): 投稿から自動生成された未加工の抜粋。
  • $post (WP_Post): 現在の投稿オブジェクト。

戻り値

wp_trim_excerptフィルタは、フィルタ処理後の抜粋(string)を戻り値として返します。

関連する関数

wp_trim_excerpt

使用可能バージョン

wp_trim_excerptフィルタは、WordPress 1.5.0 以降で使用可能です。

コアファイルのパス

wp-includes/post-template.php

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

アクション 使用可能性
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: 抜粋の最大文字数を制限する

このサンプルコードは投稿の抜粋を100文字以内に制限します。

add_filter('wp_trim_excerpt', function($text, $raw_excerpt, $post) {
    return wp_trim_words($text, 100);
}, 10, 3);

サンプル2: 特定の文字列を抜粋の末尾に追加する

このサンプルでは、抜粋の末尾に「…詳しくは記事をお読みください。」という文字列を追加します。

add_filter('wp_trim_excerpt', function($text, $raw_excerpt, $post) {
    return $text . '...詳しくは記事をお読みください。';
}, 10, 3);

サンプル3: HTMLタグを除去した抜粋を取得する

このサンプルコードは、抜粋からHTMLタグを除去します。

add_filter('wp_trim_excerpt', function($text, $raw_excerpt, $post) {
    return strip_tags($text);
}, 10, 3);

サンプル4: 抜粋にアイキャッチ画像のURLを追加する

このサンプルは、抜粋の先頭にアイキャッチ画像のURLを追加します。

add_filter('wp_trim_excerpt', function($text, $raw_excerpt, $post) {
    if (has_post_thumbnail($post->ID)) {
        $thumbnail_url = get_the_post_thumbnail_url($post->ID);
        $text = '<img src="' . esc_url($thumbnail_url) . '" alt="アイキャッチ画像">' . $text;
    }
    return $text;
}, 10, 3);

サンプル5: 抜粋のフォーマッティングをカスタマイズする

このコードでは、抜粋を強調表示するために <strong> タグを追加します。

add_filter('wp_trim_excerpt', function($text, $raw_excerpt, $post) {
    return '<strong>' . $text . '</strong>';
}, 10, 3);

著作権フリーのサンプルコードはぜひ目的に応じて利用してください。

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


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