/** * Overrides archive pages e.g. locations, events, event categories, event tags based on user settings * @param string $template * @return string */ function template($template) { global $wp_query, $EM_Category; if (is_archive()) { if (!empty($wp_query->queried_object->taxonomy) && $wp_query->queried_object->taxonomy == EM_TAXONOMY_CATEGORY && get_option('dbem_cp_categories_formats', true)) { $EM_Category = em_get_category($wp_query->queried_object->term_id); add_filter('the_content', array('EM_Category_Taxonomy', 'the_content')); $wp_query->posts = array(); $wp_query->posts[0] = new stdClass(); $wp_query->posts[0]->post_title = $EM_Category->output(get_option('dbem_category_page_title_format')); $post_array = array('ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt', 'post_status', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_content_filtered', 'post_parent', 'guid', 'menu_order', 'post_type', 'post_mime_type', 'comment_count', 'filter'); foreach ($post_array as $post_array_item) { $wp_query->posts[0]->{$post_array_item} = ''; } $wp_query->post = $wp_query->posts[0]; $wp_query->post_count = 1; $wp_query->found_posts = 1; $wp_query->max_num_pages = 1; //echo "<pre>"; print_r($wp_query); echo "</pre>"; $template = locate_template(array('page.php', 'index.php'), false); //category becomes a page } } return $template; }
function the_content($content) { global $wp_query, $EM_Category, $post, $em_category_id; if (!empty($wp_query->em_category_id) || $post->ID == get_option('dbem_categories_page') && !empty($em_category_id)) { $EM_Category = empty($wp_query->em_category_id) ? em_get_category($em_category_id) : em_get_category($wp_query->em_category_id); ob_start(); em_locate_template('templates/category-single.php', true); return ob_get_clean(); } return $content; }
public static function the_content($content) { global $wp_query, $EM_Category, $post, $em_category_id; $is_categories_page = $post->ID == get_option('dbem_categories_page'); $category_flag = !empty($wp_query->em_category_id) || !empty($em_category_id); if ($is_categories_page && $category_flag || empty($post->ID) && $category_flag) { $EM_Category = empty($wp_query->em_category_id) ? em_get_category($em_category_id) : em_get_category($wp_query->em_category_id); ob_start(); em_locate_template('templates/category-single.php', true); return ob_get_clean(); } return $content; }
/** * Is this a a single category page? * @return boolean */ function em_is_category_page($category = false) { if (!empty($category)) { global $wp_query, $post, $em_category_id; if (is_tax(EM_TAXONOMY_CATEGORY, $category)) { return true; } if (!empty($wp_query->em_category_id) || $post->ID == get_option('dbem_categories_page') && !empty($em_category_id)) { $cat_id = !empty($wp_query->em_category_id) ? $wp_query->em_category_id : $em_category_id; $EM_Category = em_get_category($cat_id); if (is_array($category)) { $is_category = array(); foreach ($category as $id_or_term) { $is_category[] = is_numeric($id_or_term) ? $EM_Category->id == $id_or_term : $EM_Category->slug == $id_or_term || $EM_Category->name == $id_or_term; } return in_array(true, $is_category); } else { $is_category = is_numeric($category) ? $EM_Category->id == $category : $EM_Category->slug == $category || $EM_Category->name == $category; return $is_category; } return false; } return false; } return em_get_page_type() == 'category'; }