slug, $tax_type );
// If there was an error, continue to the next term.
if ( is_wp_error( $term_link ) ) {
continue;
}
$tax_badge_selector = '';
if ( '' !== $badge_style ) {
$tax_badge_selector = 'badge' === $badge_style ? 'ast-button ast-badge-tax' : 'ast-underline-text';
}
/** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$term_links[] = '' . esc_html( $term->name ) . '';
/** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
}
$join_separator = 'badge' === $badge_style ? ' ' : ', ';
$all_terms = join( $join_separator, $term_links );
$output_str = '<' . esc_attr( $html_tag ) . ' class="ast-terms-link">' . $all_terms . '' . esc_attr( $html_tag ) . '>';
return ( 1 != $loop_count ) ? ' ' . $separator . ' ' . $output_str : $output_str;
}
return '';
}
/**
* Function to get Author ID.
*
* @since 4.6.0
* @return mixed $author_id Author ID.
*/
function astra_get_author_id() {
global $post;
if ( isset( $post->post_author ) ) {
$author_id = $post->post_author;
} elseif ( is_callable( 'get_the_author_meta' ) ) {
$author_id = get_the_author_meta( 'ID' );
} else {
$author_id = 1;
}
return $author_id;
}
/**
* Function to get Author Avatar.
*
* @since 4.6.0
* @param string $get_for Get for.
* @return mixed $avatar Author Avatar.
*/
function astra_author_avatar( $get_for = 'single-post' ) {
$avatar = '';
if ( is_singular() ) {
if ( 'single-post' === $get_for && astra_get_option( 'ast-dynamic-single-' . strval( get_post_type() ) . '-author-avatar', false ) ) {
$avatar_image_size = astra_get_option( 'ast-dynamic-single-' . strval( get_post_type() ) . '-author-avatar-size', 30 );
$avatar = ' ';
} elseif ( 'related-post' === $get_for && astra_get_option( 'related-posts-author-avatar', false ) ) {
$avatar_image_size = astra_get_option( 'related-posts-author-avatar-size', 30 );
$avatar = ' ';
} else {
$avatar = '';
}
}
return $avatar;
}
/**
* Common Functions for Blog and Single Blog
*
* @return post meta
*/
if ( ! function_exists( 'astra_get_post_meta' ) ) {
/**
* Post meta
*
* @param array $post_meta Post meta.
* @param string $separator Separator.
* @param string $render_by Render by Single|Related Posts|Blog.
* @return string post meta markup.
*/
function astra_get_post_meta( $post_meta, $separator = '/', $render_by = '' ) {
$output_str = '';
$loop_count = 1;
if ( is_singular() ) {
if ( 'single-post' === $render_by ) {
$separator = 'none' === astra_get_option( 'ast-dynamic-single-' . strval( get_post_type() ) . '-metadata-separator', '/' ) ? ' ' : astra_get_option( 'ast-dynamic-single-' . strval( get_post_type() ) . '-metadata-separator', '/' );
} elseif ( 'related-posts' === $render_by ) {
$separator = 'none' === $separator ? ' ' : $separator;
}
} else {
$divider_type = astra_get_option( 'blog-post-meta-divider-type' );
if ( 'none' !== $divider_type ) {
$separator = $divider_type;
} else {
$separator = ' ';
}
}
$separator = apply_filters( 'astra_post_meta_separator', $separator );
foreach ( $post_meta as $meta_value ) {
switch ( $meta_value ) {
case 'author':
$output_str .= ( 1 != $loop_count && '' != $output_str ) ? ' ' . $separator . ' ' : '';
/** @psalm-suppress InvalidOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$astra_post_author_html = '' . astra_post_author();
/** @psalm-suppress InvalidOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
if ( is_singular() ) {
if ( 'single-post' === $render_by ) {
$author_prefix_label = astra_get_option( 'ast-dynamic-single-' . strval( get_post_type() ) . '-author-prefix-label', astra_default_strings( 'string-blog-meta-author-by', false ) );
$output_str .= astra_author_avatar() . esc_html( $author_prefix_label ) . $astra_post_author_html;
} elseif ( 'related-posts' === $render_by ) {
$author_prefix_label = astra_get_option( 'related-posts-author-prefix-label', astra_default_strings( 'string-blog-meta-author-by', false ) );
$output_str .= astra_author_avatar( 'related-post' ) . esc_html( $author_prefix_label ) . $astra_post_author_html;
} else {
$output_str .= esc_html( astra_default_strings( 'string-blog-meta-author-by', false ) ) . $astra_post_author_html;
}
} else {
/** @psalm-suppress UndefinedClass */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
if ( defined( 'ASTRA_EXT_VER' ) && Astra_Ext_Extension::is_active( 'blog-pro' ) ) {
$author_avatar = astra_get_option( 'blog-meta-author-avatar' );
if ( $author_avatar ) {
$get_author_id = get_the_author_meta( 'ID' );
/** @psalm-suppress ArgumentTypeCoercion */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$get_author_gravatar = get_avatar_url( $get_author_id, array( 'size' => astra_get_option( 'blog-meta-author-avatar-size', 25 ) ) );
/** @psalm-suppress PossiblyFalseOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$output_str .= '';
/** @psalm-suppress PossiblyFalseOperand */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
}
}
$output_str .= esc_html( astra_get_option( 'blog-meta-author-avatar-prefix-label' ) ) . $astra_post_author_html;
}
break;
case 'date':
$output_str .= ( 1 != $loop_count && '' != $output_str ) ? ' ' . $separator . ' ' : '';
$get_for = 'related-posts' === $render_by ? 'related-post' : 'single-post';
$output_str .= astra_post_date( $get_for );
break;
case 'category':
$category = astra_post_categories( 'post_categories', 'blog-meta-category-style', false );
if ( '' != $category ) {
$output_str .= ( 1 != $loop_count && '' != $output_str ) ? ' ' . $separator . ' ' : '';
$output_str .= $category;
}
break;
case 'tag':
$tags = astra_post_tags( 'post_tags', 'blog-meta-tag-style', false );
if ( '' != $tags ) {
$output_str .= ( 1 != $loop_count && '' != $output_str ) ? ' ' . $separator . ' ' : '';
$output_str .= $tags;
}
break;
case 'comments':
$comment = astra_post_comments();
if ( '' != $comment ) {
$output_str .= ( 1 != $loop_count && '' != $output_str ) ? ' ' . $separator . ' ' : '';
$output_str .= $comment;
}
break;
default:
$output_str = apply_filters( 'astra_meta_case_' . $meta_value, $output_str, $loop_count, $separator );
}
if ( strpos( $meta_value, '-taxonomy' ) !== false ) {
$output_str .= astra_get_dynamic_taxonomy( $meta_value, $loop_count, $separator, astra_get_option( $meta_value . '-style', '' ), 'span' );
}
$loop_count ++;
}
return $output_str;
}
}
/**
* Get post format as per new configurations set in customizer.
*
* @param string $get_for Get for.
* @return string HTML markup for date span.
* @since 4.1.0
*/
function astra_get_dynamic_post_format( $get_for = 'single-post' ) {
$is_singular = is_singular() ? true : false;
if ( 'related-post' === $get_for ) {
$date_format_option = astra_get_option( 'related-posts-date-format', '' );
$date_type = astra_get_option( 'related-posts-meta-date-type', 'published' );
$date_format = apply_filters( 'astra_related_post_date_format', ( '' === $date_format_option ) ? get_option( 'date_format' ) : $date_format_option );
} else {
$post_type = strval( get_post_type() );
$date_format_option = $is_singular ? astra_get_option( 'ast-dynamic-single-' . esc_attr( $post_type ) . '-date-format', '' ) : astra_get_option( 'blog-meta-date-format', '' );
$date_type = $is_singular ? astra_get_option( 'ast-dynamic-single-' . esc_attr( $post_type ) . '-meta-date-type', 'published' ) : astra_get_option( 'blog-meta-date-type', 'published' );
$date_format = apply_filters( 'astra_post_date_format', ( '' === $date_format_option ) ? get_option( 'date_format' ) : $date_format_option );
}
$published_date = strval( get_the_date( $date_format ) );
$modified_date = strval( get_the_modified_date( $date_format ) );
if ( 'updated' === $date_type ) {
$class = 'updated';
$itemprop = 'dateModified';
$date = sprintf(
esc_html( '%s' ),
$modified_date
);
} else {
$class = 'published';
$itemprop = 'datePublished';
$date = sprintf(
esc_html( '%s' ),
$published_date
);
}
return sprintf( ' %3$s ', $class, $itemprop, $date );
}
/**
* Get category List.
*
* @since 4.6.0
* @param string $filter_name Filter name.
* @param string $style_type_slug Style slug.
* @param bool $post_meta Post meta.
* @return mixed Markup.
*/
function astra_get_category_list( $filter_name, $style_type_slug, $post_meta ) {
$style_type_class = '';
$separator = ', ';
$categories_list = '';
$style_type = astra_get_option( $style_type_slug );
$separator = 'badge' === $style_type ? ' ' : $separator;
$style_type_class = ' ' . $style_type;
/* translators: used between list items, there is a space after the comma */
$get_category_html = get_the_category_list( apply_filters( 'astra_' . $filter_name, $separator ) );
if ( $get_category_html ) {
if ( 'badge' === $style_type ) {
/** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$categories_list = str_replace( '' . $categories_list . '';
} else {
return '';
}
}
/**
* Get tag List.
*
* @since 4.6.0
* @param string $filter_name Filter name.
* @param string $style_type_slug style type slug.
* @param bool $post_meta Post meta.
* @return mixed Markup.
*/
function astra_get_tag_list( $filter_name, $style_type_slug, $post_meta ) {
$style_type_class = '';
$separator = ', ';
$tags_list = '';
$style_type = astra_get_option( $style_type_slug );
$separator = 'badge' === $style_type ? ' ' : $separator;
$style_type_class = ' ' . $style_type;
/* translators: used between list items, there is a space after the comma */
$tags_list_html = get_the_tag_list( '', apply_filters( 'astra_' . $filter_name, $separator ) );
if ( $tags_list_html ) {
if ( 'badge' === $style_type ) {
/** @psalm-suppress PossiblyInvalidArgument */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$tags_list = str_replace( '' . $tags_list . '';
} else {
return '';
}
}
/**
* Function to get Date of Post
*
* @since 1.0.0
* @return html
*/
if ( ! function_exists( 'astra_post_date' ) ) {
/**
* Function to get Date of Post
*
* @param string $get_for Get for single/related post/etc.
* @return string Markup.
*/
function astra_post_date( $get_for = 'single-post' ) {
$output = '';
$output .= '';
$output .= astra_get_dynamic_post_format( $get_for );
$output .= '';
return apply_filters( 'astra_post_date', $output );
}
}
/**
* Function to get Author name.
*
* @return mixed $author_name Author name.
* @since 4.0.0
*/
function astra_post_author_name() {
$author_name = '';
$get_the_author = get_the_author();
if ( empty( $get_the_author ) ) {
/** @psalm-suppress InvalidGlobal */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
global $post;
/** @psalm-suppress InvalidGlobal */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
if ( is_object( $post ) && isset( $post->post_author ) ) {
$user_id = $post->post_author;
/** @psalm-suppress InvalidGlobal */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
global $authordata;
/** @psalm-suppress InvalidGlobal */ // phpcs:ignore Generic.Commenting.DocComment.MissingShort
$author_data = '';
if ( ! $authordata ) {
$author_data = get_userdata( $user_id );
}
$author_name = esc_attr( ! empty( $author_data ) ? $author_data->display_name : '' );
}
} else {
$author_name = get_the_author();
}
return $author_name;
}
/**
* Function to get Author of Post
*
* @since 1.0.0
* @return html
*/
if ( ! function_exists( 'astra_post_author' ) ) {
/**
* Function to get Author of Post
*
* @param string $output_filter Filter string.
* @return html Markup.
*/
function astra_post_author( $output_filter = '' ) {
$author_id = astra_get_author_id();
ob_start();
echo ' 'posted-by vcard author',
)
);
echo '>';
// Translators: Author Name. ?>
'url fn n',
)
);
?>
>
'author-name',
)
);
?>
>
' . the_title( '', '', false ) . ' ' . $read_more_text . ''
);
$output = '
' . $post_link . '
'; echo wp_kses_post( apply_filters( 'astra_post_link', $output, $output_filter ) ); } } /** * Function to get Number of Comments of Post * * @since 1.0.0 * @return html */ if ( ! function_exists( 'astra_post_comments' ) ) { /** * Function to get Number of Comments of Post * * @param string $output_filter Output filter. * @return html Markup. */ function astra_post_comments( $output_filter = '' ) { $output = ''; ob_start(); if ( ! post_password_required() && ( comments_open() || get_comments_number() ) ) { ?> ' . the_title( '', '', false ) . $more_link_text . '' ); $more_link_element = ' …' . $post_link . '
'; return apply_filters( 'astra_the_content_more_link', $more_link_element, $more_link_text ); } } add_filter( 'the_content_more_link', 'astra_the_content_more_link', 10, 2 );