Exemplo n.º 1
0
 /**
  * Create the post footer
  * 
  * Override: childtheme_override_postfooter <br>
  * Filter: thematic_postfooter
  */
 function thematic_postfooter()
 {
     $post_type = get_post_type();
     $post_type_obj = get_post_type_object($post_type);
     // Check for "Page" post-type and logged in user to show edit link
     if ($post_type == 'page' && current_user_can('edit_posts')) {
         $postfooter = '<div class="entry-utility">' . thematic_postfooter_posteditlink();
         $postfooter .= "</div><!-- .entry-utility -->\n";
         // Display nothing for logged out users on a "Page" post-type
     } elseif ($post_type == 'page') {
         $postfooter = '';
         // For post-types other than "Pages" press on
     } else {
         $postfooter = '<div class="entry-utility">';
         if (is_single()) {
             $post_type_archive_link = function_exists('get_post_type_archive_link') ? get_post_type_archive_link($post_type) : home_url('/?post_type=' . $post_type);
             if (thematic_is_custom_post_type() && $post_type_obj->has_archive) {
                 /* translators: %s is custom post type singular name, wrapped in link tags */
                 $postfooter .= sprintf(__('Browse the %s archive.', 'thematic'), ' <a href="' . $post_type_archive_link . '" title="' . sprintf(esc_attr__('Permalink to %s Archive', 'thematic'), $post_type_obj->labels->singular_name) . '">' . $post_type_obj->labels->singular_name . '</a>');
                 $postfooter .= ' ';
             }
             $postfooter .= thematic_postfooter_posttax();
             $postfooter .= sprintf(_x('Bookmark the %1$spermalink%2$s.', '1s and 2s are the a href link wrappers, do not reverse them', 'thematic'), sprintf('<a title="%s" href="%s">', sprintf(esc_attr__('Permalink to %s', 'thematic'), the_title_attribute('echo=0')), apply_filters('the_permalink', get_permalink())), '</a>') . ' ';
             if (post_type_supports($post_type, 'comments')) {
                 $postfooter .= thematic_postfooter_postconnect();
             }
         } elseif (post_type_supports($post_type, 'comments')) {
             $postfooter .= thematic_postfooter_posttax();
             $postfooter .= thematic_postfooter_postcomments();
         }
         // Display edit link
         if (current_user_can('edit_posts')) {
             if (!is_single() && post_type_supports($post_type, 'comments')) {
                 $postfooter .= "\n\n\t\t\t\t\t\t" . '<span class="meta-sep meta-sep-edit">|</span> ';
             }
             $postfooter .= ' ' . thematic_postfooter_posteditlink();
         }
         $postfooter .= "\n\n\t\t\t\t\t</div><!-- .entry-utility -->\n";
     }
     // Put it on the screen
     echo apply_filters('thematic_postfooter', $postfooter);
     // Filter to override default post footer
 }
 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;
 }
Exemplo n.º 3
0
 /**
  * Create the post footer
  * 
  * Override: childtheme_override_postfooter <br>
  * Filter: thematic_postfooter
  */
 function thematic_postfooter()
 {
     $post_type = get_post_type();
     $post_type_obj = get_post_type_object($post_type);
     // Check for "Page" post-type and logged in user to show edit link
     if ($post_type == 'page' && current_user_can('edit_posts')) {
         $postfooter = '<div class="entry-utility">' . thematic_postfooter_posteditlink();
         $postfooter .= "</div><!-- .entry-utility -->\n";
         // Display nothing for logged out users on a "Page" post-type
     } elseif ($post_type == 'page') {
         $postfooter = '';
         // For post-types other than "Pages" press on
     } else {
         $postfooter = '<div class="entry-utility">';
         if (is_single()) {
             $post_type_archive_link = function_exists('get_post_type_archive_link') ? get_post_type_archive_link($post_type) : home_url('/?post_type=' . $post_type);
             if (thematic_is_custom_post_type() && $post_type_obj->has_archive) {
                 $postfooter .= __('Browse the ', 'thematic') . '<a href="' . $post_type_archive_link . '" title="' . __('Permalink to ', 'thematic') . $post_type_obj->labels->singular_name . __(' Archive', 'thematic') . '">';
                 $postfooter .= $post_type_obj->labels->singular_name . '</a>' . __(' archive', 'thematic') . '. ';
             }
             $postfooter .= thematic_postfooter_posttax();
             $postfooter .= __('Bookmark the ', 'thematic') . '<a href="' . apply_filters('the_permalink', get_permalink()) . '" title="' . __('Permalink to ', 'thematic') . the_title_attribute('echo=0') . '">';
             $postfooter .= __('permalink', 'thematic') . '</a>. ';
             if (post_type_supports($post_type, 'comments')) {
                 $postfooter .= thematic_postfooter_postconnect();
             }
         } elseif (post_type_supports($post_type, 'comments')) {
             $postfooter .= thematic_postfooter_posttax();
             $postfooter .= thematic_postfooter_postcomments();
         }
         // Display edit link
         if (current_user_can('edit_posts')) {
             if (!is_single() && post_type_supports($post_type, 'comments')) {
                 $postfooter .= "\n\n\t\t\t\t\t\t" . '<span class="meta-sep meta-sep-edit">|</span> ';
             }
             $postfooter .= ' ' . thematic_postfooter_posteditlink();
         }
         $postfooter .= "\n\n\t\t\t\t\t</div><!-- .entry-utility -->\n";
     }
     // Put it on the screen
     echo apply_filters('thematic_postfooter', $postfooter);
     // Filter to override default post footer
 }