Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 4
100.00% covered (success)
100.00%
2 / 2
CRAP
n/a
0 / 0
jetpack_author_bio
n/a
0 / 0
n/a
0 / 0
13
jetpack_has_gravatar
n/a
0 / 0
n/a
0 / 0
1
1<?php
2/**
3 * Theme Tools: Author Bio functions.
4 *
5 * @package automattic/jetpack
6 */
7
8if ( ! defined( 'ABSPATH' ) ) {
9    exit( 0 );
10}
11
12if ( ! function_exists( 'jetpack_author_bio' ) ) {
13
14    /**
15     * The function to display Author Bio in a theme.
16     *
17     * @deprecated 13.9 Moved to Classic Theme Helper package.
18     */
19    function jetpack_author_bio() {
20        _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
21        // If the theme doesn't support 'jetpack-content-options', don't continue.
22        if ( ! current_theme_supports( 'jetpack-content-options' ) ) {
23            return;
24        }
25
26        $options            = get_theme_support( 'jetpack-content-options' );
27        $author_bio         = ( ! empty( $options[0]['author-bio'] ) ) ? $options[0]['author-bio'] : null;
28        $author_bio_default = ( isset( $options[0]['author-bio-default'] ) && false === $options[0]['author-bio-default'] ) ? '' : 1;
29        $avatar_default     = ( isset( $options[0]['avatar-default'] ) && false === $options[0]['avatar-default'] ) ? '' : 1;
30
31        // If the theme doesn't support 'jetpack-content-options[ 'author-bio' ]', don't continue.
32        if ( true !== $author_bio ) {
33            return;
34        }
35
36        // If 'jetpack_content_author_bio' is false, don't continue.
37        if ( ! get_option( 'jetpack_content_author_bio', $author_bio_default ) ) {
38            return;
39        }
40
41        // If we aren't on a single post, don't continue.
42        if ( ! is_single() ) {
43            return;
44        }
45
46        // Define class for entry-author.
47        if ( ! $avatar_default && ! jetpack_has_gravatar( get_the_author_meta( 'user_email' ) ) ) {
48            $class = 'author-avatar-hide';
49        } else {
50            $class = 'author-avatar-show';
51        }
52        ?>
53        <div class="entry-author <?php echo esc_attr( $class ); ?>">
54            <?php if ( 'author-avatar-show' === $class ) : ?>
55            <div class="author-avatar">
56                <?php
57                /**
58                 * Filter the author bio avatar size.
59                 *
60                 * @param int $size The avatar height and width size in pixels.
61                 *
62                 * @module theme-tools
63                 *
64                 * @since 4.5.0
65                 */
66                $author_bio_avatar_size = apply_filters( 'jetpack_author_bio_avatar_size', 48 );
67
68                echo get_avatar( get_the_author_meta( 'user_email' ), $author_bio_avatar_size );
69                ?>
70            </div><!-- .author-avatar -->
71            <?php endif; ?>
72
73            <div class="author-heading">
74                <h2 class="author-title">
75                    <?php
76                        /* translators: %s: post author */
77                        printf( esc_html__( 'Published by %s', 'jetpack' ), '<span class="author-name">' . get_the_author() . '</span>' );
78                    ?>
79                </h2>
80            </div><!-- .author-heading -->
81
82            <p class="author-bio">
83                <?php the_author_meta( 'description' ); ?>
84                <a class="author-link" href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
85                    <?php
86                        /* translators: %s: post author */
87                        printf( esc_html__( 'View all posts by %s', 'jetpack' ), get_the_author() );
88                    ?>
89                </a>
90            </p><!-- .author-bio -->
91        </div><!-- .entry-author -->
92        <?php
93    }
94
95}
96
97if ( ! function_exists( 'jetpack_has_gravatar' ) ) {
98
99    /**
100     * Checks to see if the specified email address has a Gravatar image.
101     *
102     * @deprecated 13.9 Moved to Classic Theme Helper package.
103     * @param string $email The email of the address of the user to check.
104     * @return bool Whether or not the user has a gravatar
105     */
106    function jetpack_has_gravatar( $email ) {
107        _deprecated_function( __FUNCTION__, 'jetpack-13.9' );
108        $url     = get_avatar_url( $email, array( 'default' => '404' ) );
109        $headers = get_headers( $url );
110
111        // If 200 is found, the user has a Gravatar; otherwise, they don't.
112        return str_contains( $headers[0], '200' );
113    }
114
115}