PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 15.0
Jetpack – WP Security, Backup, Speed, & Growth v15.0
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 All 500 releases
jetpack / modules / theme-tools.php
theme-tools.php
85 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 if ( ! defined( 'ABSPATH' ) ) {
13 exit( 0 );
14 }
15
16 /**
17 * Conditionally require the Tonesque lib depending on theme support.
18 */
19 function jetpack_load_theme_tools() {
20 if ( current_theme_supports( 'tonesque' ) ) {
21 require_once JETPACK__PLUGIN_DIR . '/_inc/lib/tonesque.php';
22 }
23 }
24 add_action( 'init', 'jetpack_load_theme_tools', 30 );
25
26 /**
27 * Load theme compat file if it exists.
28 */
29 function jetpack_load_theme_compat() {
30
31 /**
32 * Filter theme compat files.
33 *
34 * Themes can add their own compat files here if they like. For example:
35 *
36 * add_filter( 'jetpack_theme_compat_files', 'mytheme_jetpack_compat_file' );
37 * function mytheme_jetpack_compat_file( $files ) {
38 * $files['mytheme'] = locate_template( 'jetpack-compat.php' );
39 * return $files;
40 * }
41 *
42 * @module theme-tools
43 *
44 * @since 2.8.0
45 *
46 * @param array Associative array of theme compat files to load.
47 */
48 $compat_files = apply_filters(
49 'jetpack_theme_compat_files',
50 array(
51 'twentyfourteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyfourteen.php',
52 'twentyfifteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyfifteen.php',
53 'twentysixteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentysixteen.php',
54 'twentynineteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentynineteen.php',
55 'twentytwenty' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwenty.php',
56 'twentytwentyone' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwentyone.php',
57 )
58 );
59
60 _jetpack_require_compat_file( get_stylesheet(), $compat_files );
61
62 if ( is_child_theme() ) {
63 _jetpack_require_compat_file( get_template(), $compat_files );
64 }
65 }
66 add_action( 'after_setup_theme', 'jetpack_load_theme_compat', -1 );
67
68 /**
69 * Requires a file once, if the passed key exists in the files array.
70 *
71 * @access private
72 * @param string $key The key to check.
73 * @param array $files Array of files to check in.
74 * @return void|WP_Error
75 */
76 function _jetpack_require_compat_file( $key, $files ) {
77 if ( ! is_string( $key ) ) {
78 return new WP_Error( 'key_not_string', 'The specified key is not actually a string.', compact( 'key' ) );
79 }
80
81 if ( array_key_exists( $key, $files ) && is_readable( $files[ $key ] ) ) {
82 require_once $files[ $key ];
83 }
84 }
85