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

概要

is_post_type_viewable 関数は、特定の投稿タイプが表示可能か調べるために使用されます。この関数を用いることにより、特定の条件下において、投稿タイプがユーザーに表示されるかどうかを判断できます。主に以下のようなケースで使用されることが多いです。

  1. カスタム投稿タイプの表示可否を確認する。
  2. ユーザーの権限による投稿の表示制御。
  3. 管理画面での投稿リストのフィルタリング。
  4. テーマやプラグインの設定に基づくコンテンツの表示の制御。
  5. ショートコードの実装時の条件分岐。
  6. 特定のユーザー権限に基づくメニュー表示の制御。
  7. お問い合わせフォームなどで表示する投稿タイプの選定。
  8. 検索機能の実装における投稿タイプ制御。

構文

is_post_type_viewable( $post_type );

パラメータ

  • $post_type (string) – 確認したい投稿タイプのスラッグ。

戻り値

  • (bool) – 指定した投稿タイプが表示可能であれば true を、そうでなければ false を返します。

関連する関数

使用可能なバージョン

is_post_type_viewable は WordPress 3.0.0 以降で使用可能です。

ワードプレスのコアファイルのパス

wp-includes/post.php

サンプルコード

サンプルコード 1: カスタム投稿タイプの表示可否を確認

$post_type = 'my_custom_post';
if ( is_post_type_viewable( $post_type ) ) {
    echo "$post_type は表示可能です。";
} else {
    echo "$post_type は表示できません。";
}

このコードは、カスタム投稿タイプ 'my_custom_post' が表示可能かどうかを確認し、結果に応じてメッセージを出力します。

サンプルコード 2: 権限に基づく表示制御

if ( is_post_type_viewable( 'page' ) && current_user_can( 'edit_pages' ) ) {
    // ページを表示するロジック
}

このコードでは、’page’ 投稿タイプが表示可能であり、現在のユーザーがページを編集できる権限を持っていることを確認しています。

サンプルコード 3: 投稿リストのカスタマイズ

add_action( 'pre_get_posts', function( $query ) {
    if ( is_admin() && is_post_type_viewable( 'post' ) ) {
        // 特定の条件で投稿タイプの投稿をフィルタリング
    }
});

このコードは、管理画面で投稿タイプ 'post' が表示可能な場合に、投稿リストのフィルタリングを実行します。

サンプルコード 4: ショートコードの条件分岐

add_shortcode( 'custom_post_type_check', function() {
    return is_post_type_viewable( 'custom_post_type' ) ? '表示可能' : '表示不可';
});

このショートコードは、指定したカスタム投稿タイプが表示可能かどうかを返します。

サンプルコード 5: メニュー表示の制御

add_action( 'admin_menu', function() {
    if ( is_post_type_viewable( 'my_custom_post' ) ) {
        add_menu_page( 'Custom Post', 'Custom Post', 'manage_options', 'custom_post', 'custom_post_function' );
    }
});

このコードは指定したカスタム投稿タイプが表示可能な場合に、管理メニューにカスタム投稿タイプのメニュー項目を追加します。

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

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

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

特に非推奨または削除されたバージョンはありません。

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


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