' . get_the_author() . '' ); // Finally, let's write all of this to the page. echo '' . twentyseventeen_time_link() . ' ' . $byline . ''; } endif; if ( ! function_exists( 'twentyseventeen_time_link' ) ) : /** * Gets a nicely formatted string for the published date. */ function twentyseventeen_time_link() { $time_string = ''; if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) { $time_string = ''; } $time_string = sprintf( $time_string, get_the_date( DATE_W3C ), get_the_date(), get_the_modified_date( DATE_W3C ), get_the_modified_date() ); // Wrap the time string in a link, and preface it with 'Posted on'. return sprintf( /* translators: %s: Post date. */ __( 'Posted on %s', 'twentyseventeen' ), '' . $time_string . '' ); } endif; if ( ! function_exists( 'twentyseventeen_entry_footer' ) ) : /** * Prints HTML with meta information for the categories, tags and comments. */ function twentyseventeen_entry_footer() { $separate_meta = wp_get_list_item_separator(); // Get Categories for posts. $categories_list = get_the_category_list( $separate_meta ); // Get Tags for posts. $tags_list = get_the_tag_list( '', $separate_meta ); // We don't want to output .entry-footer if it will be empty, so make sure its not. if ( ( ( twentyseventeen_categorized_blog() && $categories_list ) || $tags_list ) || get_edit_post_link() ) { echo ' '; } } endif; if ( ! function_exists( 'twentyseventeen_edit_link' ) ) : /** * Returns an accessibility-friendly link to edit a post or page. * * This also gives us a little context about what exactly we're editing * (post or page?) so that users understand a bit more where they are in terms * of the template hierarchy and their content. Helpful when/if the single-page * layout with multiple posts/pages shown gets confusing. */ function twentyseventeen_edit_link() { edit_post_link( sprintf( /* translators: %s: Post title. Only visible to screen readers. */ __( 'Edit "%s"', 'twentyseventeen' ), get_the_title() ), '', '' ); } endif; /** * Display a front page section. * * @param WP_Customize_Partial $partial Partial associated with a selective refresh request. * @param int $id Front page section to display. */ function twentyseventeen_front_page_section( $partial = null, $id = 0 ) { if ( is_a( $partial, 'WP_Customize_Partial' ) ) { // Find out the ID and set it up during a selective refresh. global $twentyseventeencounter; $id = str_replace( 'panel_', '', $partial->id ); $twentyseventeencounter = $id; } global $post; // Modify the global post object before setting up post data. if ( get_theme_mod( 'panel_' . $id ) ) { $post = get_post( get_theme_mod( 'panel_' . $id ) ); setup_postdata( $post ); set_query_var( 'panel', $id ); get_template_part( 'template-parts/page/content', 'front-page-panels' ); wp_reset_postdata(); } elseif ( is_customize_preview() ) { // The output placeholder anchor. printf( '
' . '%2$s
', $id, /* translators: %s: The section ID. */ sprintf( __( 'Front Page Section %s Placeholder', 'twentyseventeen' ), $id ) ); } } /** * Returns true if a blog has more than 1 category. * * @return bool */ function twentyseventeen_categorized_blog() { $category_count = get_transient( 'twentyseventeen_categories' ); if ( false === $category_count ) { // Create an array of all the categories that are attached to posts. $categories = get_categories( array( 'fields' => 'ids', 'hide_empty' => 1, // We only need to know if there is more than one category. 'number' => 2, ) ); // Count the number of categories that are attached to the posts. $category_count = count( $categories ); set_transient( 'twentyseventeen_categories', $category_count ); } // Allow viewing case of 0 or 1 categories in post preview. if ( is_preview() ) { return true; } return $category_count > 1; } /** * Flush out the transients used in twentyseventeen_categorized_blog. */ function twentyseventeen_category_transient_flusher() { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { return; } // Like, beat it. Dig? delete_transient( 'twentyseventeen_categories' ); } add_action( 'edit_category', 'twentyseventeen_category_transient_flusher' ); add_action( 'save_post', 'twentyseventeen_category_transient_flusher' ); if ( ! function_exists( 'wp_body_open' ) ) : /** * Fire the wp_body_open action. * * Added for backward compatibility to support pre-5.2.0 WordPress versions. * * @since Twenty Seventeen 2.2 */ function wp_body_open() { /** * Triggered after the opening tag. * * @since Twenty Seventeen 2.2 */ do_action( 'wp_body_open' ); } endif;