[ Index ] |
PHP Cross Reference of WordPress Trunk (Updated Daily) |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Custom template tags for this theme. 4 * 5 * Eventually, some of the functionality here could be replaced by core features. 6 * 7 * @package WordPress 8 * @subpackage Twenty_Seventeen 9 * @since Twenty Seventeen 1.0 10 */ 11 12 if ( ! function_exists( 'twentyseventeen_posted_on' ) ) : 13 /** 14 * Prints HTML with meta information for the current post-date/time and author. 15 */ 16 function twentyseventeen_posted_on() { 17 18 // Get the author name; wrap it in a link. 19 $byline = sprintf( 20 /* translators: %s: Post author. */ 21 __( 'by %s', 'twentyseventeen' ), 22 '<span class="author vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . get_the_author() . '</a></span>' 23 ); 24 25 // Finally, let's write all of this to the page. 26 echo '<span class="posted-on">' . twentyseventeen_time_link() . '</span><span class="byline"> ' . $byline . '</span>'; 27 } 28 endif; 29 30 31 if ( ! function_exists( 'twentyseventeen_time_link' ) ) : 32 /** 33 * Gets a nicely formatted string for the published date. 34 */ 35 function twentyseventeen_time_link() { 36 $time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>'; 37 if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { 38 $time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>'; 39 } 40 41 $time_string = sprintf( 42 $time_string, 43 get_the_date( DATE_W3C ), 44 get_the_date(), 45 get_the_modified_date( DATE_W3C ), 46 get_the_modified_date() 47 ); 48 49 // Wrap the time string in a link, and preface it with 'Posted on'. 50 return sprintf( 51 /* translators: %s: Post date. */ 52 __( '<span class="screen-reader-text">Posted on</span> %s', 'twentyseventeen' ), 53 '<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>' 54 ); 55 } 56 endif; 57 58 59 if ( ! function_exists( 'twentyseventeen_entry_footer' ) ) : 60 /** 61 * Prints HTML with meta information for the categories, tags and comments. 62 */ 63 function twentyseventeen_entry_footer() { 64 65 $separate_meta = wp_get_list_item_separator(); 66 67 // Get Categories for posts. 68 $categories_list = get_the_category_list( $separate_meta ); 69 70 // Get Tags for posts. 71 $tags_list = get_the_tag_list( '', $separate_meta ); 72 73 // We don't want to output .entry-footer if it will be empty, so make sure it is not. 74 if ( ( ( twentyseventeen_categorized_blog() && $categories_list ) || $tags_list ) || get_edit_post_link() ) { 75 76 echo '<footer class="entry-footer">'; 77 78 if ( 'post' === get_post_type() ) { 79 if ( ( $categories_list && twentyseventeen_categorized_blog() ) || $tags_list ) { 80 echo '<span class="cat-tags-links">'; 81 82 // Make sure there's more than one category before displaying. 83 if ( $categories_list && twentyseventeen_categorized_blog() ) { 84 echo '<span class="cat-links">' . twentyseventeen_get_svg( array( 'icon' => 'folder-open' ) ) . 85 /* translators: Hidden accessibility text. */ 86 '<span class="screen-reader-text">' . __( 'Categories', 'twentyseventeen' ) . '</span>' . 87 $categories_list . 88 '</span>'; 89 } 90 91 if ( $tags_list && ! is_wp_error( $tags_list ) ) { 92 echo '<span class="tags-links">' . twentyseventeen_get_svg( array( 'icon' => 'hashtag' ) ) . 93 /* translators: Hidden accessibility text. */ 94 '<span class="screen-reader-text">' . __( 'Tags', 'twentyseventeen' ) . '</span>' . 95 $tags_list . 96 '</span>'; 97 } 98 99 echo '</span>'; 100 } 101 } 102 103 twentyseventeen_edit_link(); 104 105 echo '</footer> <!-- .entry-footer -->'; 106 } 107 } 108 endif; 109 110 111 if ( ! function_exists( 'twentyseventeen_edit_link' ) ) : 112 /** 113 * Returns an accessibility-friendly link to edit a post or page. 114 * 115 * This also gives a little context about what exactly we're editing 116 * (post or page?) so that users understand a bit more where they are in terms 117 * of the template hierarchy and their content. Helpful when/if the single-page 118 * layout with multiple posts/pages shown gets confusing. 119 */ 120 function twentyseventeen_edit_link() { 121 edit_post_link( 122 sprintf( 123 /* translators: %s: Post title. Only visible to screen readers. */ 124 __( 'Edit<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ), 125 get_the_title() 126 ), 127 '<span class="edit-link">', 128 '</span>' 129 ); 130 } 131 endif; 132 133 /** 134 * Displays a front page section. 135 * 136 * @global int|string $twentyseventeencounter Front page section counter. 137 * @global WP_Post $post Global post object. 138 * 139 * @param WP_Customize_Partial $partial Partial associated with a selective refresh request. 140 * @param int $id Front page section to display. 141 */ 142 function twentyseventeen_front_page_section( $partial = null, $id = 0 ) { 143 if ( $partial instanceof WP_Customize_Partial ) { 144 // Find out the ID and set it up during a selective refresh. 145 global $twentyseventeencounter; 146 147 $id = str_replace( 'panel_', '', $partial->id ); 148 149 $twentyseventeencounter = $id; 150 } 151 152 global $post; // Modify the global post object before setting up post data. 153 if ( get_theme_mod( 'panel_' . $id ) ) { 154 $post = get_post( get_theme_mod( 'panel_' . $id ) ); 155 setup_postdata( $post ); 156 set_query_var( 'panel', $id ); 157 158 get_template_part( 'template-parts/page/content', 'front-page-panels' ); 159 160 wp_reset_postdata(); 161 } elseif ( is_customize_preview() ) { 162 // The output placeholder anchor. 163 printf( 164 '<article class="panel-placeholder panel twentyseventeen-panel twentyseventeen-panel%1$s" id="panel%1$s">' . 165 '<span class="twentyseventeen-panel-title">%2$s</span></article>', 166 $id, 167 /* translators: %s: The section ID. */ 168 sprintf( __( 'Front Page Section %s Placeholder', 'twentyseventeen' ), $id ) 169 ); 170 } 171 } 172 173 /** 174 * Returns true if a blog has more than 1 category. 175 * 176 * @return bool 177 */ 178 function twentyseventeen_categorized_blog() { 179 $category_count = get_transient( 'twentyseventeen_categories' ); 180 181 if ( false === $category_count ) { 182 // Create an array of all the categories that are attached to posts. 183 $categories = get_categories( 184 array( 185 'fields' => 'ids', 186 'hide_empty' => 1, 187 // We only need to know if there is more than one category. 188 'number' => 2, 189 ) 190 ); 191 192 // Count the number of categories that are attached to the posts. 193 $category_count = count( $categories ); 194 195 set_transient( 'twentyseventeen_categories', $category_count ); 196 } 197 198 // Allow viewing case of 0 or 1 categories in post preview. 199 if ( is_preview() ) { 200 return true; 201 } 202 203 return $category_count > 1; 204 } 205 206 207 /** 208 * Flushes out the transients used in twentyseventeen_categorized_blog. 209 */ 210 function twentyseventeen_category_transient_flusher() { 211 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { 212 return; 213 } 214 // Like, beat it. Dig? 215 delete_transient( 'twentyseventeen_categories' ); 216 } 217 add_action( 'edit_category', 'twentyseventeen_category_transient_flusher' ); 218 add_action( 'save_post', 'twentyseventeen_category_transient_flusher' ); 219 220 if ( ! function_exists( 'wp_body_open' ) ) : 221 /** 222 * Fires the wp_body_open action. 223 * 224 * Added for backward compatibility to support pre-5.2.0 WordPress versions. 225 * 226 * @since Twenty Seventeen 2.2 227 */ 228 function wp_body_open() { 229 /** 230 * Fires after the opening <body> tag. 231 * 232 * @since Twenty Seventeen 2.2 233 */ 234 do_action( 'wp_body_open' ); 235 } 236 endif;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated : Mon Mar 18 08:20:01 2024 | Cross-referenced by PHPXref |