PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 14.2.2
Jetpack – WP Security, Backup, Speed, & Growth v14.2.2
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 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / modules / theme-tools / compat / twentytwenty.php
jetpack / modules / theme-tools / compat Last commit date
twentyfifteen-rtl.css 7 years ago twentyfifteen.css 4 years ago twentyfifteen.php 4 years ago twentyfourteen-rtl.css 7 years ago twentyfourteen.css 4 years ago twentyfourteen.php 4 years ago twentynineteen-rtl.css 2 years ago twentynineteen.css 3 years ago twentynineteen.php 4 years ago twentyseventeen.php 4 years ago twentysixteen-rtl.css 3 years ago twentysixteen.css 3 years ago twentysixteen.php 2 years ago twentytwenty-rtl.css 2 years ago twentytwenty.css 2 years ago twentytwenty.php 4 years ago twentytwentyone-rtl.css 2 years ago twentytwentyone.css 2 years ago twentytwentyone.php 5 years ago
twentytwenty.php
273 lines
1 <?php
2 /**
3 * Jetpack Compatibility File
4 * See: https://jetpack.com/
5 *
6 * @package automattic/jetpack
7 */
8
9 /**
10 * Add Jetpack extra functionality to Twenty Twenty.
11 *
12 * See: https://jetpack.com/support/infinite-scroll/
13 * See: https://jetpack.com/support/responsive-videos/
14 * See: https://jetpack.com/support/content-options/
15 */
16 function twentytwenty_jetpack_setup() {
17 /**
18 * Add theme support for Infinite Scroll.
19 */
20 add_theme_support(
21 'infinite-scroll',
22 array(
23 'type' => 'click',
24 'container' => 'site-content',
25 'render' => 'twentytwenty_infinite_scroll_render',
26 'footer' => 'site-content',
27 'footer_widgets' => array(
28 'sidebar-1',
29 'sidebar-2',
30 ),
31 )
32 );
33
34 // Add theme support for Content Options.
35 add_theme_support(
36 'jetpack-content-options',
37 array(
38 'post-details' => array(
39 'stylesheet' => 'twentytwenty-style',
40 'date' => '.post-date',
41 'categories' => '.entry-categories',
42 'tags' => '.post-tags',
43 'author' => '.post-author',
44 ),
45 'featured-images' => array(
46 'archive' => true,
47 'post' => true,
48 'page' => true,
49 'fallback' => false,
50 ),
51 )
52 );
53
54 /**
55 * Add theme support for geo-location.
56 */
57 add_theme_support( 'jetpack-geo-location' );
58 }
59 add_action( 'after_setup_theme', 'twentytwenty_jetpack_setup' );
60
61 /**
62 * Custom render function for Infinite Scroll.
63 */
64 function twentytwenty_infinite_scroll_render() {
65 while ( have_posts() ) {
66 echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />';
67 the_post();
68 get_template_part( 'template-parts/content', get_post_type() );
69 }
70 }
71
72 /**
73 * Remove Sharing buttons and Likes from excerpts that are used as intro on single post views.
74 */
75 function twentytwenty_no_sharing_on_excerpts() {
76 if ( is_single() ) {
77 // Remove sharing buttons.
78 remove_filter( 'the_excerpt', 'sharing_display', 19 );
79
80 // Remove Likes.
81 if ( class_exists( 'Jetpack_Likes' ) ) {
82 remove_filter( 'the_excerpt', array( Jetpack_Likes::init(), 'post_likes' ), 30, 1 );
83 }
84 }
85 }
86 add_action( 'loop_start', 'twentytwenty_no_sharing_on_excerpts' );
87
88 /**
89 * We do not need to display the Likes Heading here.
90 *
91 * @param string $heading Headline structure.
92 * @param string $title Title.
93 * @param string $module Module name.
94 */
95 function twentytwenty_no_likes_heading( $heading, $title, $module ) {
96 if ( 'likes' === $module ) {
97 return '';
98 }
99
100 return $heading;
101 }
102 add_filter( 'jetpack_sharing_headline_html', 'twentytwenty_no_likes_heading', 10, 3 );
103
104 /**
105 * Disable Ads in post excerpts, that are used as intro on single post views.
106 */
107 add_filter( 'wordads_excerpt_disable', '__return_true' );
108
109 /**
110 * Add our compat CSS file for Infinite Scroll and custom widget stylings and such.
111 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production
112 * or skip it entirely for wpcom.
113 */
114 function twentytwenty_enqueue_jetpack_style() {
115 $version = Jetpack::is_development_version()
116 ? filemtime( JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwenty.css' )
117 : JETPACK__VERSION;
118
119 wp_enqueue_style( 'twentytwenty-jetpack', plugins_url( 'twentytwenty.css', __FILE__ ), array(), $version );
120 wp_style_add_data( 'twentytwenty-jetpack', 'rtl', 'replace' );
121 }
122 add_action( 'wp_enqueue_scripts', 'twentytwenty_enqueue_jetpack_style' );
123
124 /**
125 * Add inline custom CSS with custom accent color if there is any set.
126 */
127 function twentytwenty_infinity_accent_color_css() {
128 // Bail early if no custom color was set.
129 if (
130 'custom' !== get_theme_mod( 'accent_hue_active' )
131 || empty( get_theme_mod( 'accent_accessible_colors' ) )
132 ) {
133 return;
134 }
135
136 $color_info = get_theme_mod( 'accent_accessible_colors' );
137 $custom_css = sprintf(
138 '
139 .infinite-scroll #site-content #infinite-handle span button,
140 .infinite-scroll #site-content #infinite-handle span button:hover,
141 .infinite-scroll #site-content #infinite-handle span button:focus {
142 background: %1$s;
143 color: %2$s;
144 }
145 #site-content .entry-content div.sharedaddy h3.sd-title,
146 #site-content .entry-content h3.sd-title,
147 #site-content .entry-content #jp-relatedposts h3.jp-relatedposts-headline {
148 color: %3$s;
149 }
150 ',
151 $color_info['content']['accent'],
152 $color_info['content']['background'],
153 $color_info['content']['secondary']
154 );
155
156 // Add our custom style to the existing Twenty Twenty CSS compat file.
157 wp_add_inline_style( 'twentytwenty-jetpack', $custom_css );
158 }
159 add_action( 'wp_enqueue_scripts', 'twentytwenty_infinity_accent_color_css' );
160
161 /**
162 * Load AMP theme specific hooks for infinite scroll.
163 *
164 * @return void
165 */
166 function amp_twentytwenty_infinite_scroll_render_hooks() {
167 add_filter( 'jetpack_amp_infinite_footers', 'twentytwenty_amp_infinite_footers', 10, 2 );
168 add_filter( 'jetpack_amp_infinite_output', 'twentytwenty_amp_infinite_output' );
169 add_filter( 'jetpack_amp_infinite_separator', 'twentytwenty_amp_infinite_separator' );
170 add_filter( 'jetpack_amp_infinite_older_posts', 'twentytwenty_amp_infinite_older_posts' );
171 }
172
173 /**
174 * Get the theme specific footers.
175 *
176 * @param array $footers The footers of the themes.
177 * @param string $buffer Contents of the output buffer.
178 *
179 * @return mixed
180 */
181 function twentytwenty_amp_infinite_footers( $footers, $buffer ) {
182 // Collect the footer wrapper.
183 preg_match(
184 '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
185 $buffer,
186 $footer
187 );
188 $footers[] = reset( $footer );
189
190 // Collect the footer wrapper.
191 preg_match(
192 '/<footer id="site-footer".*<!-- #site-footer -->/s',
193 $buffer,
194 $footer
195 );
196 $footers[] = reset( $footer );
197
198 return $footers;
199 }
200
201 /**
202 * Hide and remove various elements from next page load.
203 *
204 * @param string $buffer Contents of the output buffer.
205 *
206 * @return string
207 */
208 function twentytwenty_amp_infinite_output( $buffer ) {
209 // Hide site header on next page load.
210 $buffer = preg_replace(
211 '/id="site-header"/',
212 '$0 next-page-hide',
213 $buffer
214 );
215
216 // Hide pagination on next page load.
217 $buffer = preg_replace(
218 '/class=".*pagination-wrapper.*"/',
219 '$0 next-page-hide hidden',
220 $buffer
221 );
222
223 // Remove the footer as it will be added back to amp next page footer.
224 $buffer = preg_replace(
225 '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
226 '',
227 $buffer
228 );
229
230 // Remove the footer as it will be added back to amp next page footer.
231 $buffer = preg_replace(
232 '/<footer id="site-footer".*<!-- #site-footer -->/s',
233 '',
234 $buffer
235 );
236
237 return $buffer;
238 }
239
240 /**
241 * Filter the AMP infinite scroll separator
242 *
243 * @return string
244 */
245 function twentytwenty_amp_infinite_separator() {
246 ob_start();
247 ?>
248 <hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true">
249 <?php
250 return ob_get_clean();
251 }
252
253 /**
254 * Filter the AMP infinite scroll older posts button
255 *
256 * @return string
257 */
258 function twentytwenty_amp_infinite_older_posts() {
259 ob_start();
260 ?>
261 <div id="infinite-handle" class="read-more-button-wrap">
262 <span>
263 <a href="{{url}}" class="more-link" rel="amphtml">
264 <span class="faux-button">
265 <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
266 </span>
267 </a>
268 </span>
269 </div>
270 <?php
271 return ob_get_clean();
272 }
273