PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.2
Jetpack – WP Security, Backup, Speed, & Growth v16.2
16.2 16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 All 502 releases
jetpack / modules / theme-tools / content-options / author-bio.php

author-bio.php in Jetpack – WP Security, Backup, Speed, & Growth 16.2, at modules/theme-tools/content-options/author-bio.php

116 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Theme Tools: Author Bio functions.
4 *
5 * @package automattic/jetpack
6 */
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit( 0 );
10 }
11
12 if ( ! 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
97 if ( ! 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 }
116