The is_post_type_viewable WordPress PHP Filter determines if a post type is considered “viewable”.
Usage
add_filter('is_post_type_viewable', 'your_function_name', 10, 2);
function your_function_name($is_viewable, $post_type) {
// your custom code here
return $is_viewable;
}
Parameters
- $is_viewable (bool): Whether the post type is “viewable” (strict type).
- $post_type (WP_Post_Type): Post type object.
More Information
See WordPress Developer Resources: is_post_type_viewable
Examples
Make a custom post type viewable
In this example, we’ll make a custom post type called “special_post” viewable.
add_filter('is_post_type_viewable', 'make_special_post_viewable', 10, 2);
function make_special_post_viewable($is_viewable, $post_type) {
if ($post_type->name === 'special_post') {
return true;
}
return $is_viewable;
}
Hide a specific post type
In this example, we’ll hide a post type called “hidden_post” from being viewable.
add_filter('is_post_type_viewable', 'hide_hidden_post', 10, 2);
function hide_hidden_post($is_viewable, $post_type) {
if ($post_type->name === 'hidden_post') {
return false;
}
return $is_viewable;
}
Make all post types viewable
In this example, we’ll make all post types viewable.
add_filter('is_post_type_viewable', 'make_all_post_types_viewable', 10, 2);
function make_all_post_types_viewable($is_viewable, $post_type) {
return true;
}
Hide all post types
In this example, we’ll hide all post types from being viewable.
add_filter('is_post_type_viewable', 'hide_all_post_types', 10, 2);
function hide_all_post_types($is_viewable, $post_type) {
return false;
}
Make post types viewable based on a condition
In this example, we’ll make post types viewable only if the current user is an administrator.
add_filter('is_post_type_viewable', 'conditionally_make_post_types_viewable', 10, 2);
function conditionally_make_post_types_viewable($is_viewable, $post_type) {
if (current_user_can('administrator')) {
return true;
}
return $is_viewable;
}