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 . ''; 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 = '' . strval( get_avatar( astra_get_author_id(), $avatar_image_size ) ) . ''; } 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 = '' . strval( get_avatar( astra_get_author_id(), $avatar_image_size ) ) . ''; } 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 .= '' . get_the_title() . ''; /** @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. ?> ' . 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 = ' …'; 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 );