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

概要

pings_openフィルタは、WordPressの投稿ページがトラックバックおよびピンバックを許可されているか調べる際によく使用されます。具体的には、これは投稿が外部からの参照を受け入れるかどうかを制御する機能です。以下は、このフィルタが実装される際によく使われる機能です。

  1. トラックバック/ピンバックの許可設定
  2. 投稿のメタデータのチェック
  3. 投稿タイプによる異なる設定
  4. 特定の条件に基づくカスタムチェック
  5. プラグインによるトラックバックの有効/無効設定
  6. テーマによるカスタム投稿設定
  7. 管理画面での設定変更
  8. API経由のトラックバック要求の処理

構文

apply_filters( 'pings_open', bool $open, WP_Post $post );

パラメータ

  • $open (bool): 投稿がピンバックまたはトラックバックを受け入れるかどうかを示すブール値。
  • $post (WP_Post): 現在の投稿オブジェクト。

戻り値

フィルタ適用後の更新されたブール値。

関連する関数

使用可能なバージョン

このフィルタはWordPress 2.0.0以降で使用可能です。

コアファイルのパス

wp-includes/post.php

サンプルコード

サンプルコード1: トラックバックの有効化

このサンプルコードは、すべての投稿でトラックバックを有効にします。

add_filter('pings_open', '__return_true');

引用元: WordPress Codex

サンプルコード2: 投稿タイプに基づいてトラックバックを許可

カスタム投稿タイプにのみトラックバックを許可するサンプルです。

function custom_pings_open( $open, $post ) {
    if ( 'my_custom_post_type' === $post->post_type ) {
        return true;
    }
    return $open;
}
add_filter('pings_open', 'custom_pings_open', 10, 2);

引用元: Advanced WordPress

サンプルコード3: 特定の条件でトラックバックを無効化

特定の条件に基づいてトラックバックを無効にする例です。

function disable_pings_on_condition( $open, $post ) {
    if ( is_single() && !is_user_logged_in() ) {
        return false; // ログインしていないユーザーには無効
    }
    return $open;
}
add_filter('pings_open', 'disable_pings_on_condition', 10, 2);

引用元: WPBeginner

サンプルコード4: フィルタを使用して設定を変更

このコードは条件に応じて投稿のピンバックを変更します。

add_filter('pings_open', function ($open, $post) {
    return ($post->post_status === 'publish') ? true : false;
}, 10, 2);

引用元: WP Shout

サンプルコード5: 投稿のメタデータに基づく許可

投稿メタに基づいてトラックバックを許可します。

function allow_pings_based_on_meta( $open, $post ) {
    $allow_pings = get_post_meta($post->ID, 'allow_pings', true);
    return $allow_pings === 'yes' ? true : false;
}
add_filter('pings_open', 'allow_pings_based_on_meta', 10, 2);

引用元: Tuts+

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

アクション 使用可否
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

非推奨または削除されたバージョン

このフィルタは特定のバージョンで非推奨または削除されていません。

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


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