Esempio n. 1
0
 /**
  * Create the page title.
  * 
  * Echoes the title of the webpage for specific queries. The markup is conditionally set using template tags.
  * Located in templates: archive.php, attachement.php, author.php, category.php, search.php, tag.php
  * 
  * Override: childtheme_override_page_title <br>
  * Filter: thematic_page_title 
  * 
  * @todo review and remove possiblity for displaying an empty div for archive-meta
  */
 function thematic_page_title()
 {
     global $post;
     $content = "\t\t\t\t";
     if (is_attachment()) {
         $content .= '<h2 class="page-title"><a href="';
         $content .= apply_filters('the_permalink', get_permalink($post->post_parent));
         $content .= '" rev="attachment"><span class="meta-nav">&laquo; </span>';
         $content .= get_the_title($post->post_parent);
         $content .= '</a></h2>';
     } elseif (is_author()) {
         $content .= '<h1 class="page-title author">';
         $author = get_the_author_meta('display_name', $post->post_author);
         $content .= __('Author Archives:', 'thematic');
         $content .= ' <span>' . $author . '</span>';
         $content .= '</h1>';
     } elseif (is_category()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Category Archives:', 'thematic');
         $content .= ' <span>' . single_cat_title('', FALSE) . '</span>';
         $content .= '</h1>' . "\n";
         $content .= "\n\t\t\t\t" . '<div class="archive-meta">';
         if (!('' == category_description())) {
             $content .= apply_filters('archive_meta', category_description());
         }
         $content .= '</div>';
     } elseif (is_search()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Search Results for:', 'thematic');
         $content .= ' <span id="search-terms">' . get_search_query() . '</span>';
         $content .= '</h1>';
     } elseif (is_tag()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Tag Archives:', 'thematic');
         $content .= ' <span>';
         $content .= single_tag_title('', false);
         $content .= '</span></h1>';
     } elseif (is_tax()) {
         global $taxonomy;
         $content .= '<h1 class="page-title">';
         $tax = get_taxonomy($taxonomy);
         $content .= $tax->labels->singular_name . ' ';
         $content .= __('Archives:', 'thematic');
         $content .= ' <span>' . thematic_get_term_name() . '</span>';
         $content .= '</h1>';
     } elseif (is_post_type_archive()) {
         $content .= '<h1 class="page-title">';
         $post_type_obj = get_post_type_object(get_post_type());
         $post_type_name = $post_type_obj->labels->singular_name;
         $content .= __('Archives:', 'thematic');
         $content .= ' <span>' . $post_type_name . '</span>';
         $content .= '</h1>';
     } elseif (is_day()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Daily Archives: %s', 'thematic'), '<span>' . get_the_time(get_option('date_format'))) . '</span>';
         $content .= '</h1>';
     } elseif (is_month()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Monthly Archives: %s', 'thematic'), '<span>' . get_the_time('F Y')) . '</span>';
         $content .= '</h1>';
     } elseif (is_year()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Yearly Archives: %s', 'thematic'), '<span>' . get_the_time('Y')) . '</span>';
         $content .= '</h1>';
     }
     $content .= "\n";
     echo apply_filters('thematic_page_title', $content);
 }
 function thematic_body_class($print = true)
 {
     global $wp_query, $current_user, $blog_id, $post, $taxonomy;
     $c = array();
     if (apply_filters('thematic_show_bc_wordpress', TRUE)) {
         // It's surely a WordPress blog, right?
         $c[] = 'wordpress';
     }
     if (apply_filters('thematic_show_bc_blogid', TRUE)) {
         // Applies the blog id to BODY element .. blog-id1 for WordPress < 3.0
         $c[] = 'blogid-' . $blog_id;
     }
     if (apply_filters('thematic_show_bc_datetime', TRUE)) {
         // Applies the time- and date-based classes (below) to BODY element
         thematic_date_classes(time(), $c);
     }
     if (apply_filters('thematic_show_bc_contenttype', TRUE)) {
         // Generic semantic classes for what type of content is displayed
         is_front_page() ? $c[] = 'home' : null;
         // For the front page, if set
         is_home() ? $c[] = 'blog' : null;
         // For the blog posts page, if set
         is_archive() ? $c[] = 'archive' : null;
         is_date() ? $c[] = 'date' : null;
         is_search() ? $c[] = 'search' : null;
         is_paged() ? $c[] = 'paged' : null;
         is_attachment() ? $c[] = 'attachment' : null;
         is_404() ? $c[] = 'four04' : null;
         // CSS does not allow a digit as first character
     }
     if (apply_filters('thematic_show_bc_singular', TRUE)) {
         // Special classes for BODY element when a singular post
         if (is_singular()) {
             $c[] = 'singular';
         } else {
             $c[] = 'not-singular';
         }
     }
     // Special classes for BODY element when a single post
     if (is_single() && apply_filters('thematic_show_bc_singlepost', TRUE)) {
         $postID = $wp_query->post->ID;
         the_post();
         // Adds post slug class, prefixed by 'slug-'
         $c[] = $wp_query->post->post_name;
         // Adds 'single' class and class with the post ID
         $c[] = 'single postid-' . $postID;
         // Adds classes for the month, day, and hour when the post was published
         if (isset($wp_query->post->post_date)) {
             thematic_date_classes(mysql2date('U', $wp_query->post->post_date), $c, 's-');
         }
         // Adds category classes for each category on single posts
         if ($cats = get_the_category()) {
             foreach ($cats as $cat) {
                 $c[] = 's-category-' . $cat->slug;
             }
         }
         // Adds tag classes for each tag on single posts
         if ($tags = get_the_tags()) {
             foreach ($tags as $tag) {
                 $c[] = 's-tag-' . $tag->slug;
             }
         }
         // Adds taxonomy classes for each term on single posts
         $single_post_type = get_post_type_object(get_post_type($post->ID));
         // Check for post types without taxonomy inclusion
         if (isset($single_post_type->taxonomy)) {
             if ($tax = get_the_terms($post->ID, get_post_taxonomies())) {
                 foreach ($tax as $term) {
                     // Remove tags and categories from results
                     if ($term->taxonomy != 'post_tag') {
                         if ($term->taxonomy != 'category') {
                             $c[] = 's-tax-' . $term->taxonomy;
                             $c[] = 's-' . $term->taxonomy . '-' . $term->slug;
                         }
                     }
                 }
             }
         }
         // Adds MIME-specific classes for attachments
         if (is_attachment()) {
             $mime_type = get_post_mime_type();
             $mime_prefix = array('application/', 'image/', 'text/', 'audio/', 'video/', 'music/');
             $c[] = 'attachmentid-' . $postID . ' attachment-' . str_replace($mime_prefix, "", "{$mime_type}");
         }
         // Adds author class for the post author
         $c[] = 's-author-' . sanitize_title_with_dashes(strtolower(get_the_author_meta('user_nicename', $post->post_author)));
         rewind_posts();
         // For posts with excerpts
         if (has_excerpt()) {
             $c[] = 's-has-excerpt';
         }
         // For posts with comments open or closed
         if (comments_open()) {
             $c[] = 's-comments-open';
         } else {
             $c[] = 's-comments-closed';
         }
         // For posts with pings open or closed
         if (pings_open()) {
             $c[] = 's-pings-open';
         } else {
             $c[] = 's-pings-closed';
         }
         // For password-protected posts
         if ($post->post_password) {
             $c[] = 's-protected';
         }
         // For sticky posts
         if (is_sticky()) {
             $c[] = 's-sticky';
         }
     } elseif (is_author() && apply_filters('thematic_show_bc_authorarchives', TRUE)) {
         $author = $wp_query->get_queried_object();
         $c[] = 'author';
         $c[] = 'author-' . $author->user_nicename;
     } elseif (is_category() && apply_filters('thematic_show_bc_categoryarchives', TRUE)) {
         $cat = $wp_query->get_queried_object();
         $c[] = 'category';
         $c[] = 'category-' . $cat->slug;
     } elseif (is_tag() && apply_filters('thematic_show_bc_tagarchives', TRUE)) {
         $tags = $wp_query->get_queried_object();
         $c[] = 'tag';
         $c[] = 'tag-' . $tags->slug;
     } elseif (is_tax() && apply_filters('thematic_show_bc_taxonomyarchives', TRUE)) {
         $c[] = 'taxonomy';
         $c[] = 'tax-' . $taxonomy;
         $c[] = $taxonomy . '-' . strtolower(thematic_get_term_name());
     } elseif (is_page() && apply_filters('thematic_show_bc_pages', TRUE)) {
         $pageID = $wp_query->post->ID;
         $page_children = wp_list_pages("child_of={$pageID}&echo=0");
         the_post();
         // Adds post slug class, prefixed by 'slug-'
         //$c[] = 'slug-' . $wp_query->post->post_name;
         $c[] = $wp_query->post->post_name;
         $c[] = 'page pageid-' . $pageID;
         $c[] = 'page-author-' . sanitize_title_with_dashes(strtolower(get_the_author_meta('user_nicename', $post->post_author)));
         // Checks to see if the page has children and/or is a child page; props to Adam
         if ($page_children) {
             $c[] = 'page-parent';
         }
         if ($wp_query->post->post_parent) {
             $c[] = 'page-child parent-pageid-' . $wp_query->post->post_parent;
         }
         // For pages with excerpts
         if (has_excerpt()) {
             $c[] = 'page-has-excerpt';
         }
         // For pages with comments open or closed
         if (comments_open()) {
             $c[] = 'page-comments-open';
         } else {
             $c[] = 'page-comments-closed';
         }
         // For pages with pings open or closed
         if (pings_open()) {
             $c[] = 'page-pings-open';
         } else {
             $c[] = 'page-pings-closed';
         }
         // For password-protected pages
         if ($post->post_password) {
             $c[] = 'page-protected';
         }
         // Checks to see if the page is using a template
         if (is_page_template() & !is_page_template('default')) {
             $c[] = 'page-template page-template-' . str_replace('.php', '-php', get_post_meta($pageID, '_wp_page_template', true));
         }
         rewind_posts();
     } elseif (is_search() && apply_filters('thematic_show_bc_search', TRUE)) {
         the_post();
         if ($wp_query->found_posts > 0) {
             $c[] = 'search-results';
         } else {
             $c[] = 'search-no-results';
         }
         rewind_posts();
     }
     if (apply_filters('thematic_show_bc_loggedin', TRUE)) {
         // For when a visitor is logged in while browsing
         if ($current_user->ID) {
             $c[] = 'loggedin';
         }
     }
     // Paged classes; for page x > 1 classes of index and all post types etc.
     if (apply_filters('thematic_show_bc_pagex', TRUE)) {
         if ((($page = $wp_query->get('paged')) || ($page = $wp_query->get('page'))) && $page > 1) {
             // Thanks to Prentiss Riddle, twitter.com/pzriddle, for the security fix below.
             $page = intval($page);
             // Ensures that an integer (not some dangerous script) is passed for the variable
             $c[] = 'paged-' . $page;
             if (thematic_is_custom_post_type()) {
                 $c[] = str_replace('_', '-', $post->post_type) . '-paged-' . $page;
             } elseif (is_single() && $post->post_type == "post") {
                 $c[] = 'single-paged-' . $page;
             } elseif (is_page()) {
                 $c[] = 'page-paged-' . $page;
             } elseif (is_category()) {
                 $c[] = 'category-paged-' . $page;
             } elseif (is_tag()) {
                 $c[] = 'tag-paged-' . $page;
             } elseif (is_tax()) {
                 $c[] = 'taxonomy-paged-' . $page;
             } elseif (is_date()) {
                 $c[] = 'date-paged-' . $page;
             } elseif (is_author()) {
                 $c[] = 'author-paged-' . $page;
             } elseif (is_search()) {
                 $c[] = 'search-paged-' . $page;
             }
             // Paged classes; for page x = 1	For all post types
         } elseif (strpos($post->post_content, '<!--nextpage-->')) {
             if (thematic_is_custom_post_type()) {
                 $c[] = str_replace('_', '-', $post->post_type) . '-paged-1';
             } elseif (is_page()) {
                 $c[] = 'page-paged-1';
             } elseif (is_single()) {
                 $c[] = 'single-paged-1';
             }
         }
     }
     // Separates classes with a single space, collates classes for BODY
     $c = join(' ', apply_filters('thematic_body_class', $c));
     // Available filter: thematic_body_class
     // And tada!
     return $print ? print $c : $c;
 }
 function thematic_page_title()
 {
     global $post;
     $content = '';
     if (is_attachment()) {
         $content .= '<h2 class="page-title"><a href="';
         $content .= apply_filters('the_permalink', get_permalink($post->post_parent));
         $content .= '" rev="attachment"><span class="meta-nav">&laquo; </span>';
         $content .= get_the_title($post->post_parent);
         $content .= '</a></h2>';
     } elseif (is_author()) {
         $content .= '<h1 class="page-title author">';
         $author = get_the_author_meta('display_name');
         $content .= __('Author Archives: ', 'thematic');
         $content .= '<span>';
         $content .= $author;
         $content .= '</span></h1>';
     } elseif (is_category()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Category Archives:', 'thematic');
         $content .= ' <span>';
         $content .= single_cat_title('', FALSE);
         $content .= '</span></h1>' . "\n";
         $content .= '<div class="archive-meta">';
         if (!('' == category_description())) {
             $content .= apply_filters('archive_meta', category_description());
         }
         $content .= '</div>';
     } elseif (is_search()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Search Results for:', 'thematic');
         $content .= ' <span id="search-terms">';
         $content .= esc_html(stripslashes($_GET['s']));
         $content .= '</span></h1>';
     } elseif (is_tag()) {
         $content .= '<h1 class="page-title">';
         $content .= __('Tag Archives:', 'thematic');
         $content .= ' <span>';
         $content .= __(thematic_tag_query());
         $content .= '</span></h1>';
     } elseif (is_tax()) {
         global $taxonomy;
         $content .= '<h1 class="page-title">';
         $tax = get_taxonomy($taxonomy);
         $content .= $tax->labels->name . ' ';
         $content .= __('Archives:', 'thematic');
         $content .= ' <span>';
         $content .= thematic_get_term_name();
         $content .= '</span></h1>';
     } elseif (is_day()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Daily Archives: <span>%s</span>', 'thematic'), get_the_time(get_option('date_format')));
         $content .= '</h1>';
     } elseif (is_month()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Monthly Archives: <span>%s</span>', 'thematic'), get_the_time('F Y'));
         $content .= '</h1>';
     } elseif (is_year()) {
         $content .= '<h1 class="page-title">';
         $content .= sprintf(__('Yearly Archives: <span>%s</span>', 'thematic'), get_the_time('Y'));
         $content .= '</h1>';
     } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {
         $content .= '<h1 class="page-title">';
         $content .= __('Blog Archives', 'thematic');
         $content .= '</h1>';
     }
     $content .= "\n";
     echo apply_filters('thematic_page_title', $content);
 }