Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Check if a custom post type supports archives
<?php
/**
* Check if post type supports an archive
*
* @param string $post_type post type name
* @uses get_post_type
* @global object $post
* @returns boolean
* @author Joshua David Nelson
*/
if( !function_exists( 'cpt_has_archive' ) ) {
function cpt_has_archive( $post_type ) {
if( !is_string( $post_type ) || !isset( $post_type ) )
return false;
// find custom post types with archvies
$args = array(
'has_archive' => true,
'_builtin' => false,
);
$output = 'names';
$archived_custom_post_types = get_post_types( $args, $output );
// if there are no custom post types, then the current post can't be one
if( empty( $archived_custom_post_types ) )
return false;
// check if post type is a supports archives
if ( in_array( $post_type, $archived_custom_post_types ) ) {
return true;
} else {
return false;
}
// if all else fails, return false
return false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.