%2$s';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
$time_string = '';
}
$time_string = sprintf(
$time_string,
esc_attr( get_the_date( DATE_W3C ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( DATE_W3C ) ),
esc_html( get_the_modified_date() )
);
$posted_on = sprintf(
/* translators: %s: post date. */
'' . $time_string . ''
);
echo '' . $posted_on . ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
endif;
if ( ! function_exists( 'blog_content_posted_by' ) ) :
/**
* Prints HTML with meta information for the current author.
*/
function blog_content_posted_by() {
if ( get_theme_mod( 'blog_content_enable_author', true ) === false ) {
return;
}
$byline = sprintf(
/* translators: %s: post author. */
'%s %s',
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
esc_html__( 'by', 'blog-content' ),
esc_html( get_the_author() )
);
echo '' . wp_kses_post( $byline ) . ''; // Ensuring safe output
}
endif;
if ( ! function_exists( 'blog_content_categories_list' ) ) :
/**
* Prints HTML with meta information for the categories.
*/
function blog_content_categories_list() {
if ( get_theme_mod( 'blog_content_enable_category', true ) === false ) {
return;
}
if ( 'post' === get_post_type() ) {
$categories = get_the_category();
if ( ! empty( $categories ) ) {
echo '
';
foreach ( $categories as $category ) {
// Fetch category color from term meta.
$color = get_term_meta( $category->term_id, 'blog_content_custom_category_hue', true );
if ( ! $color ) {
$color = 'var(--theme-primary-hue)'; // fallback if no color is set.
}
printf(
'%3$s',
esc_url( get_category_link( $category->term_id ) ),
esc_attr( $color ),
esc_html( $category->name ),
esc_attr( $category->slug )
);
}
echo '
';
}
}
}
endif;
if ( ! function_exists( 'blog_content_entry_footer' ) ) :
/**
* Prints HTML with meta information for the categories, tags and comments.
*/
function blog_content_entry_footer() {
// Hide category and tag text for pages.
if ( 'post' === get_post_type() ) {
/* translators: used between list items, there is a space after the comma */
$tags_list = get_the_tag_list( '', esc_html_x( ', ', 'list item separator', 'blog-content' ) );
if ( $tags_list ) {
/* translators: 1: list of tags. */
printf( '' . esc_html__( 'Tagged %1$s', 'blog-content' ) . '', $tags_list ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
if ( ! is_single() && ! post_password_required() && ( comments_open() || get_comments_number() ) ) {
echo '';
comments_popup_link(
sprintf(
wp_kses(
/* translators: %s: post title */
__( 'Leave a Comment on %s', 'blog-content' ),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post( get_the_title() )
)
);
echo '';
}
edit_post_link(
sprintf(
wp_kses(
/* translators: %s: Name of current post. Only visible to screen readers */
__( 'Edit %s', 'blog-content' ),
array(
'span' => array(
'class' => array(),
),
)
),
wp_kses_post( get_the_title() )
),
'',
''
);
}
endif;
if ( ! function_exists( 'blog_content_post_thumbnail' ) ) :
/**
* Displays an optional post thumbnail.
* Wraps the post thumbnail in an anchor element on index views, or a div
* element when on single views.
*/
function blog_content_post_thumbnail() {
if ( post_password_required() || is_attachment() || ! has_post_thumbnail() ) {
return;
}
if ( is_singular() ) :
?>