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

概要

get_post_classフィルタは、WordPressにおいて投稿記事のクラス名を取得する際に使用されます。このフィルタを使うことで、デフォルトのクラス名にカスタムクラスを追加したり、特定の条件に基づいてクラス名を変更したりすることが可能です。以下のような機能を実装する際に役立つことがよくあります。

  1. 投稿の種類に応じたスタイリング
  2. 特定の投稿ステータスに基づくクラスの追加
  3. 特定のカスタムフィールドの値に基づくクラス操作
  4. カテゴリーやタグによるスタイリングの変更
  5. 投稿の公開日によるビジュアルの変更
  6. コメント数に基づいてスタイルを変更
  7. 投稿者の情報に基づくクラスの変更
  8. 特定の条件下におけるクラスの条件付け

構文

apply_filters( 'post_class', $classes, $class, $post_id );

パラメータ

  • $classes: 取得された投稿のクラス名の配列
  • $class: カスタムクラス名(オプション)
  • $post_id: 投稿のID

戻り値

  • 修正されたクラス名の配列

関連する関数

https://refwp.com/?titleonly=1&s=get_post_class

このフィルタを使用可能なバージョン

  • 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: 投稿の種類に基づくクラスの追加

function custom_post_class($classes) {
    if (is_single() && 'post' === get_post_type()) {
        $classes[] = 'single-post';
    }
    return $classes;
}
add_filter('post_class', 'custom_post_class');

このコードは、単一の投稿が表示されるときにsingle-postというクラスを追加します。

サンプルコード2: ステータスに基づくクラスの操作

function custom_status_class($classes) {
    global $post;
    if ($post->post_status === 'draft') {
        $classes[] = 'draft-post';
    }
    return $classes;
}
add_filter('post_class', 'custom_status_class');

このコードは、投稿がドラフト状態である場合にdraft-postというクラスを追加します。

サンプルコード3: 特定のカスタムフィールド値に基づくクラスの追加

function custom_field_class($classes) {
    if (get_post_meta(get_the_ID(), 'featured', true)) {
        $classes[] = 'featured-post';
    }
    return $classes;
}
add_filter('post_class', 'custom_field_class');

このコードは、カスタムフィールドfeaturedが設定されている場合にfeatured-postというクラスを追加します。

サンプルコード4: コメント数に基づくクラスの追加

function comment_count_class($classes) {
    if (get_comments_number() > 5) {
        $classes[] = 'popular-post';
    }
    return $classes;
}
add_filter('post_class', 'comment_count_class');

このコードは、コメント数が5件を超えるとpopular-postというクラスを追加します。

サンプルコード5: アーカイブページでのクラスの変更

function archive_class($classes) {
    if (is_archive()) {
        $classes[] = 'archive-view';
    }
    return $classes;
}
add_filter('post_class', 'archive_class');

このコードは、アーカイブページが表示されるときにarchive-viewというクラスを追加します。

これらのサンプルコードは、WordPressのテーマやプラグインに取り入れることで、さまざまなスタイリングや機能を実装する際に役立ちます。

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


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