Completed
Push — add/e2e-mailchimp-block-test ( e217db...6066d0 )
by Yaroslav
98:30 queued 85:55
created

theme-tools.php ➔ jetpack_load_theme_compat()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

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

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.

In this case you can add the @ignore PhpDoc annotation to the duplicate definition and it will be ignored.

Loading history...
65
	}
66
67
	if ( array_key_exists( $key, $files ) && is_readable( $files[ $key ] ) ) {
68
		require_once $files[ $key ];
69
	}
70
}
71