[ Index ] |
PHP Cross Reference of WordPress |
[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 its 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' ) ) . '<span class="screen-reader-text">' . __( 'Categories', 'twentyseventeen' ) . '</span>' . $categories_list . '</span>'; 85 } 86 87 if ( $tags_list && ! is_wp_error( $tags_list ) ) { 88 echo '<span class="tags-links">' . twentyseventeen_get_svg( array( 'icon' => 'hashtag' ) ) . '<span class="screen-reader-text">' . __( 'Tags', 'twentyseventeen' ) . '</span>' . $tags_list . '</span>'; 89 } 90 91 echo '</span>'; 92 } 93 } 94 95 twentyseventeen_edit_link(); 96 97 echo '</footer> <!-- .entry-footer -->'; 98 } 99 } 100 endif; 101 102 103 if ( ! function_exists( 'twentyseventeen_edit_link' ) ) : 104 /** 105 * Returns an accessibility-friendly link to edit a post or page. 106 * 107 * This also gives us a little context about what exactly we're editing 108 * (post or page?) so that users understand a bit more where they are in terms 109 * of the template hierarchy and their content. Helpful when/if the single-page 110 * layout with multiple posts/pages shown gets confusing. 111 */ 112 function twentyseventeen_edit_link() { 113 edit_post_link( 114 sprintf( 115 /* translators: %s: Post title. Only visible to screen readers. */ 116 __( 'Edit<span class="screen-reader-text"> "%s"</span>', 'twentyseventeen' ), 117 get_the_title() 118 ), 119 '<span class="edit-link">', 120 '</span>' 121 ); 122 } 123 endif; 124 125 /** 126 * Display a front page section. 127 * 128 * @param WP_Customize_Partial $partial Partial associated with a selective refresh request. 129 * @param int $id Front page section to display. 130 */ 131 function twentyseventeen_front_page_section( $partial = null, $id = 0 ) { 132 if ( is_a( $partial, 'WP_Customize_Partial' ) ) { 133 // Find out the ID and set it up during a selective refresh. 134 global $twentyseventeencounter; 135 136 $id = str_replace( 'panel_', '', $partial->id ); 137 138 $twentyseventeencounter = $id; 139 } 140 141 global $post; // Modify the global post object before setting up post data. 142 if ( get_theme_mod( 'panel_' . $id ) ) { 143 $post = get_post( get_theme_mod( 'panel_' . $id ) ); 144 setup_postdata( $post ); 145 set_query_var( 'panel', $id ); 146 147 get_template_part( 'template-parts/page/content', 'front-page-panels' ); 148 149 wp_reset_postdata(); 150 } elseif ( is_customize_preview() ) { 151 // The output placeholder anchor. 152 printf( 153 '<article class="panel-placeholder panel twentyseventeen-panel twentyseventeen-panel%1$s" id="panel%1$s">' . 154 '<span class="twentyseventeen-panel-title">%2$s</span></article>', 155 $id, 156 /* translators: %s: The section ID. */ 157 sprintf( __( 'Front Page Section %s Placeholder', 'twentyseventeen' ), $id ) 158 ); 159 } 160 } 161 162 /** 163 * Returns true if a blog has more than 1 category. 164 * 165 * @return bool 166 */ 167 function twentyseventeen_categorized_blog() { 168 $category_count = get_transient( 'twentyseventeen_categories' ); 169 170 if ( false === $category_count ) { 171 // Create an array of all the categories that are attached to posts. 172 $categories = get_categories( 173 array( 174 'fields' => 'ids', 175 'hide_empty' => 1, 176 // We only need to know if there is more than one category. 177 'number' => 2, 178 ) 179 ); 180 181 // Count the number of categories that are attached to the posts. 182 $category_count = count( $categories ); 183 184 set_transient( 'twentyseventeen_categories', $category_count ); 185 } 186 187 // Allow viewing case of 0 or 1 categories in post preview. 188 if ( is_preview() ) { 189 return true; 190 } 191 192 return $category_count > 1; 193 } 194 195 196 /** 197 * Flush out the transients used in twentyseventeen_categorized_blog. 198 */ 199 function twentyseventeen_category_transient_flusher() { 200 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { 201 return; 202 } 203 // Like, beat it. Dig? 204 delete_transient( 'twentyseventeen_categories' ); 205 } 206 add_action( 'edit_category', 'twentyseventeen_category_transient_flusher' ); 207 add_action( 'save_post', 'twentyseventeen_category_transient_flusher' ); 208 209 if ( ! function_exists( 'wp_body_open' ) ) : 210 /** 211 * Fire the wp_body_open action. 212 * 213 * Added for backward compatibility to support pre-5.2.0 WordPress versions. 214 * 215 * @since Twenty Seventeen 2.2 216 */ 217 function wp_body_open() { 218 /** 219 * Triggered after the opening <body> tag. 220 * 221 * @since Twenty Seventeen 2.2 222 */ 223 do_action( 'wp_body_open' ); 224 } 225 endif;
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sat Dec 14 01:00:02 2024 | Cross-referenced by PHPXref 0.7.1 |