概要
is_post_type_viewable 関数は、特定の投稿タイプが表示可能か調べるために使用されます。この関数を用いることにより、特定の条件下において、投稿タイプがユーザーに表示されるかどうかを判断できます。主に以下のようなケースで使用されることが多いです。
- カスタム投稿タイプの表示可否を確認する。
- ユーザーの権限による投稿の表示制御。
- 管理画面での投稿リストのフィルタリング。
- テーマやプラグインの設定に基づくコンテンツの表示の制御。
- ショートコードの実装時の条件分岐。
- 特定のユーザー権限に基づくメニュー表示の制御。
- お問い合わせフォームなどで表示する投稿タイプの選定。
- 検索機能の実装における投稿タイプ制御。
構文
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 |
非推奨または削除されたバージョン
特に非推奨または削除されたバージョンはありません。