PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 15.6
Jetpack – WP Security, Backup, Speed, & Growth v15.6
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 15.6, at modules/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