PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 16.3
Jetpack – WP Security, Backup, Speed, & Growth v16.3
16.3 16.3-beta 16.3-a.5 16.3-a.7 16.3-a.3 16.3-a.1 16.2 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 All 508 releases
← All changes | modules/theme-tools.php +84 -0 16.2-beta → 16.3 View file →
@@ -1,0 +1,84 @@
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 +}