web/wp-content/plugins/acf-extended/includes/acfe-post-functions.php (55 lines of code) (raw):

<?php if(!defined('ABSPATH')){ exit; } /** * acfe_get_post_types * * Query & retrieve post types * * @param array $args * * @return array */ function acfe_get_post_types($args = array()){ // vars $return = array(); // extract special args $include = acf_extract_var($args, 'include'); $include = acf_get_array($include); // get post types $posts_types = acf_get_post_types($args); // allow to retrieve post when has_archive is true if(!empty($args['has_archive'])){ // check post has archive $post_archive = get_option('show_on_front') === 'posts' || (get_option('show_on_front') === 'page' && get_option('page_for_posts')); // append post if($post_archive && !in_array('post', $posts_types)){ $posts_types[] = 'post'; } } // loop foreach($posts_types as $post_type){ // validate include if(!empty($include) && !in_array($post_type, $include)){ continue; } // append $return[] = $post_type; } // return return $return; } /** * acfe_get_post_type_objects * * Query & retrieve post types objects * * @param array $args * * @return array */ function acfe_get_post_type_objects($args = array()){ // vars $return = array(); // get post types $posts_types = acfe_get_post_types($args); // loop foreach($posts_types as $post_type){ // get object $object = get_post_type_object($post_type); // append $return[ $object->name ] = $object; } // return return $return; } /** * acfe_get_pretty_post_statuses * * Similar to acf_get_pretty_post_types() but for Post Statuses * * @param array $posts_statuses * * @return array */ function acfe_get_pretty_post_statuses($posts_statuses = array()){ // vars $ref = array(); $return = array(); // get post statuses if(empty($posts_statuses)){ $posts_statuses = get_post_stati(); } // loop foreach($posts_statuses as $post_status){ // vars $object = get_post_status_object($post_status); $label = $object->label; // append to return $return[ $object->name ] = $label; // increase counter if(!isset($ref[ $label ])){ $ref[ $label ] = 0; } $ref[ $label ]++; } // get slugs foreach(array_keys($return) as $slug){ // vars $label = $return[ $slug ]; // append slug if($ref[ $label ] > 1){ $return[ $slug ] .= " ({$slug})"; } } // return return $return; }