PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 14.5.1
Jetpack – WP Security, Backup, Speed, & Growth v14.5.1
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 1 year ago twentyfourteen-rtl.css 7 years ago twentyfourteen.css 4 years ago twentyfourteen.php 1 year ago twentynineteen-rtl.css 2 years ago twentynineteen.css 3 years ago twentynineteen.php 1 year ago twentysixteen-rtl.css 3 years ago twentysixteen.css 3 years ago twentysixteen.php 1 year ago twentytwenty-rtl.css 2 years ago twentytwenty.css 2 years ago twentytwenty.php 1 year ago twentytwentyone-rtl.css 2 years ago twentytwentyone.css 2 years ago twentytwentyone.php 1 year ago
twentytwenty.php
269 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 add_action( 'after_setup_theme', 'twentytwenty_jetpack_setup' );
55
56 /**
57 * Custom render function for Infinite Scroll.
58 */
59 function twentytwenty_infinite_scroll_render() {
60 while ( have_posts() ) {
61 echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />';
62 the_post();
63 get_template_part( 'template-parts/content', get_post_type() );
64 }
65 }
66
67 /**
68 * Remove Sharing buttons and Likes from excerpts that are used as intro on single post views.
69 */
70 function twentytwenty_no_sharing_on_excerpts() {
71 if ( is_single() ) {
72 // Remove sharing buttons.
73 remove_filter( 'the_excerpt', 'sharing_display', 19 );
74
75 // Remove Likes.
76 if ( class_exists( 'Jetpack_Likes' ) ) {
77 remove_filter( 'the_excerpt', array( Jetpack_Likes::init(), 'post_likes' ), 30 );
78 }
79 }
80 }
81 add_action( 'loop_start', 'twentytwenty_no_sharing_on_excerpts' );
82
83 /**
84 * We do not need to display the Likes Heading here.
85 *
86 * @param string $heading Headline structure.
87 * @param string $title Title.
88 * @param string $module Module name.
89 */
90 function twentytwenty_no_likes_heading( $heading, $title, $module ) {
91 if ( 'likes' === $module ) {
92 return '';
93 }
94
95 return $heading;
96 }
97 add_filter( 'jetpack_sharing_headline_html', 'twentytwenty_no_likes_heading', 10, 3 );
98
99 /**
100 * Disable Ads in post excerpts, that are used as intro on single post views.
101 */
102 add_filter( 'wordads_excerpt_disable', '__return_true' );
103
104 /**
105 * Add our compat CSS file for Infinite Scroll and custom widget stylings and such.
106 * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production
107 * or skip it entirely for wpcom.
108 */
109 function twentytwenty_enqueue_jetpack_style() {
110 $version = Jetpack::is_development_version()
111 ? filemtime( JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwenty.css' )
112 : JETPACK__VERSION;
113
114 wp_enqueue_style( 'twentytwenty-jetpack', plugins_url( 'twentytwenty.css', __FILE__ ), array(), $version );
115 wp_style_add_data( 'twentytwenty-jetpack', 'rtl', 'replace' );
116 }
117 add_action( 'wp_enqueue_scripts', 'twentytwenty_enqueue_jetpack_style' );
118
119 /**
120 * Add inline custom CSS with custom accent color if there is any set.
121 */
122 function twentytwenty_infinity_accent_color_css() {
123 // Bail early if no custom color was set.
124 if (
125 'custom' !== get_theme_mod( 'accent_hue_active' )
126 || empty( get_theme_mod( 'accent_accessible_colors' ) )
127 ) {
128 return;
129 }
130
131 $color_info = get_theme_mod( 'accent_accessible_colors' );
132 $custom_css = sprintf(
133 '
134 .infinite-scroll #site-content #infinite-handle span button,
135 .infinite-scroll #site-content #infinite-handle span button:hover,
136 .infinite-scroll #site-content #infinite-handle span button:focus {
137 background: %1$s;
138 color: %2$s;
139 }
140 #site-content .entry-content div.sharedaddy h3.sd-title,
141 #site-content .entry-content h3.sd-title,
142 #site-content .entry-content #jp-relatedposts h3.jp-relatedposts-headline {
143 color: %3$s;
144 }
145 ',
146 $color_info['content']['accent'],
147 $color_info['content']['background'],
148 $color_info['content']['secondary']
149 );
150
151 // Add our custom style to the existing Twenty Twenty CSS compat file.
152 wp_add_inline_style( 'twentytwenty-jetpack', $custom_css );
153 }
154 add_action( 'wp_enqueue_scripts', 'twentytwenty_infinity_accent_color_css' );
155
156 /**
157 * Load AMP theme specific hooks for infinite scroll.
158 *
159 * @return void
160 */
161 function amp_twentytwenty_infinite_scroll_render_hooks() {
162 add_filter( 'jetpack_amp_infinite_footers', 'twentytwenty_amp_infinite_footers', 10, 2 );
163 add_filter( 'jetpack_amp_infinite_output', 'twentytwenty_amp_infinite_output' );
164 add_filter( 'jetpack_amp_infinite_separator', 'twentytwenty_amp_infinite_separator' );
165 add_filter( 'jetpack_amp_infinite_older_posts', 'twentytwenty_amp_infinite_older_posts' );
166 }
167
168 /**
169 * Get the theme specific footers.
170 *
171 * @param array $footers The footers of the themes.
172 * @param string $buffer Contents of the output buffer.
173 *
174 * @return mixed
175 */
176 function twentytwenty_amp_infinite_footers( $footers, $buffer ) {
177 // Collect the footer wrapper.
178 preg_match(
179 '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
180 $buffer,
181 $footer
182 );
183 $footers[] = reset( $footer );
184
185 // Collect the footer wrapper.
186 preg_match(
187 '/<footer id="site-footer".*<!-- #site-footer -->/s',
188 $buffer,
189 $footer
190 );
191 $footers[] = reset( $footer );
192
193 return $footers;
194 }
195
196 /**
197 * Hide and remove various elements from next page load.
198 *
199 * @param string $buffer Contents of the output buffer.
200 *
201 * @return string
202 */
203 function twentytwenty_amp_infinite_output( $buffer ) {
204 // Hide site header on next page load.
205 $buffer = preg_replace(
206 '/id="site-header"/',
207 '$0 next-page-hide',
208 $buffer
209 );
210
211 // Hide pagination on next page load.
212 $buffer = preg_replace(
213 '/class=".*pagination-wrapper.*"/',
214 '$0 next-page-hide hidden',
215 $buffer
216 );
217
218 // Remove the footer as it will be added back to amp next page footer.
219 $buffer = preg_replace(
220 '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
221 '',
222 $buffer
223 );
224
225 // Remove the footer as it will be added back to amp next page footer.
226 $buffer = preg_replace(
227 '/<footer id="site-footer".*<!-- #site-footer -->/s',
228 '',
229 $buffer
230 );
231
232 return $buffer;
233 }
234
235 /**
236 * Filter the AMP infinite scroll separator
237 *
238 * @return string
239 */
240 function twentytwenty_amp_infinite_separator() {
241 ob_start();
242 ?>
243 <hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true">
244 <?php
245 return ob_get_clean();
246 }
247
248 /**
249 * Filter the AMP infinite scroll older posts button
250 *
251 * @return string
252 */
253 function twentytwenty_amp_infinite_older_posts() {
254 ob_start();
255 ?>
256 <div id="infinite-handle" class="read-more-button-wrap">
257 <span>
258 <a href="{{url}}" class="more-link" rel="amphtml">
259 <span class="faux-button">
260 <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
261 </span>
262 </a>
263 </span>
264 </div>
265 <?php
266 return ob_get_clean();
267 }
268
269