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