PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 11.1.4
Jetpack – WP Security, Backup, Speed, & Growth v11.1.4
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 14.3.1 All 501 releases
jetpack / modules / theme-tools.php

theme-tools.php in Jetpack – WP Security, Backup, Speed, & Growth 11.1.4, at modules/theme-tools.php

82 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Module: Theme Tools
4 *
5 * Load code specific to themes or theme tools
6 * This file is special, and is not an actual `module` as such.
7 * It is included by ./module-extras.php
8 *
9 * @package automattic/jetpack
10 */
11
12 /**
13 * Conditionally require the Tonesque lib depending on theme support.
14 */
15 function jetpack_load_theme_tools() {
16 if ( current_theme_supports( 'tonesque' ) ) {
17 jetpack_require_lib( 'tonesque' );
18 }
19 }
20 add_action( 'init', 'jetpack_load_theme_tools', 30 );
21
22 /**
23 * Load theme compat file if it exists.
24 */
25 function jetpack_load_theme_compat() {
26
27 /**
28 * Filter theme compat files.
29 *
30 * Themes can add their own compat files here if they like. For example:
31 *
32 * add_filter( 'jetpack_theme_compat_files', 'mytheme_jetpack_compat_file' );
33 * function mytheme_jetpack_compat_file( $files ) {
34 * $files['mytheme'] = locate_template( 'jetpack-compat.php' );
35 * return $files;
36 * }
37 *
38 * @module theme-tools
39 *
40 * @since 2.8.0
41 *
42 * @param array Associative array of theme compat files to load.
43 */
44 $compat_files = apply_filters(
45 'jetpack_theme_compat_files',
46 array(
47 'twentyfourteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyfourteen.php',
48 'twentyfifteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyfifteen.php',
49 'twentysixteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentysixteen.php',
50 'twentyseventeen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyseventeen.php',
51 'twentynineteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentynineteen.php',
52 'twentytwenty' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwenty.php',
53 'twentytwentyone' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwentyone.php',
54 )
55 );
56
57 _jetpack_require_compat_file( get_stylesheet(), $compat_files );
58
59 if ( is_child_theme() ) {
60 _jetpack_require_compat_file( get_template(), $compat_files );
61 }
62 }
63 add_action( 'after_setup_theme', 'jetpack_load_theme_compat', -1 );
64
65 /**
66 * Requires a file once, if the passed key exists in the files array.
67 *
68 * @access private
69 * @param string $key The key to check.
70 * @param array $files Array of files to check in.
71 * @return void|WP_Error
72 */
73 function _jetpack_require_compat_file( $key, $files ) {
74 if ( ! is_string( $key ) ) {
75 return new WP_Error( 'key_not_string', 'The specified key is not actually a string.', compact( 'key' ) );
76 }
77
78 if ( array_key_exists( $key, $files ) && is_readable( $files[ $key ] ) ) {
79 require_once $files[ $key ];
80 }
81 }
82