1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
/** |
4
|
|
|
* Module Name: Custom CSS |
5
|
|
|
* Module Description: Tweak your site’s CSS without modifying your theme. |
6
|
|
|
* Sort Order: 2 |
7
|
|
|
* First Introduced: 1.7 |
8
|
|
|
* Requires Connection: No |
9
|
|
|
* Auto Activate: Yes |
10
|
|
|
* Module Tags: Appearance |
11
|
|
|
* Feature: Appearance |
12
|
|
|
* Additional Search Queries: css, customize, custom, style, editor, less, sass, preprocessor, font, mobile, appearance, theme, stylesheet |
13
|
|
|
*/ |
14
|
|
|
|
15
|
|
|
function jetpack_load_custom_css() { |
16
|
|
|
// If WordPress has the core version of Custom CSS, load our new version. |
17
|
|
|
// @see https://core.trac.wordpress.org/changeset/38829 |
18
|
|
|
if ( function_exists( 'wp_get_custom_css' ) ) { |
19
|
|
|
if ( ! function_exists( 'wp_update_custom_css_post' ) ) { |
20
|
|
|
wp_die( 'Please run a SVN up to get the latest version of trunk, or update to at least 4.7 RC1' ); |
21
|
|
|
} |
22
|
|
|
if ( ! Jetpack_Options::get_option( 'custom_css_4.7_migration' ) ) { |
23
|
|
|
include_once dirname( __FILE__ ) . '/custom-css/migrate-to-core.php'; |
24
|
|
|
} |
25
|
|
|
|
26
|
|
|
// TODO: DELETE THIS |
27
|
|
|
else { |
28
|
|
|
if ( defined( 'WP_CLI' ) && WP_CLI ) { |
29
|
|
|
function jetpack_custom_css_undo_data_migration_cli() { |
30
|
|
|
Jetpack_Options::delete_option( 'custom_css_4.7_migration' ); |
31
|
|
|
WP_CLI::success( __( 'Option deleted, re-migrate via `wp jetpack custom-css migrate`.', 'jetpack' ) ); |
32
|
|
|
} |
33
|
|
|
WP_CLI::add_command( 'jetpack custom-css undo-migrate', 'jetpack_custom_css_undo_data_migration_cli' ); |
34
|
|
|
} |
35
|
|
|
} |
36
|
|
|
// TODO: END DELETE THIS |
37
|
|
|
|
38
|
|
|
include_once dirname( __FILE__ ) . '/custom-css/custom-css/preprocessors.php'; |
39
|
|
|
include_once dirname( __FILE__ ) . '/custom-css/custom-css-4.7.php'; |
40
|
|
|
return; |
41
|
|
|
} |
42
|
|
|
|
43
|
|
|
include_once dirname( __FILE__ ) . "/custom-css/custom-css.php"; |
44
|
|
|
add_action( 'init', array( 'Jetpack_Custom_CSS', 'init' ) ); |
45
|
|
|
} |
46
|
|
|
|
47
|
|
|
add_action( 'jetpack_modules_loaded', 'custom_css_loaded' ); |
48
|
|
|
|
49
|
|
|
function custom_css_loaded() { |
50
|
|
|
Jetpack::enable_module_configurable( __FILE__ ); |
51
|
|
|
Jetpack::module_configuration_load( __FILE__, 'custom_css_configuration_load' ); |
52
|
|
|
add_filter( 'jetpack_module_configuration_url_custom-css', 'jetpack_custom_css_configuration_url' ); |
53
|
|
|
} |
54
|
|
|
|
55
|
|
|
/** |
56
|
|
|
* Overrides default configuration url |
57
|
|
|
* |
58
|
|
|
* @uses admin_url |
59
|
|
|
* @return string module settings URL |
60
|
|
|
*/ |
61
|
|
View Code Duplication |
function jetpack_custom_css_configuration_url() { |
|
|
|
|
62
|
|
|
// Redirect to Core's CSS editor in the customizer if the feature is available. |
63
|
|
|
if ( function_exists( 'wp_get_custom_css' ) ) { |
64
|
|
|
$configuration_link = Jetpack_Custom_CSS_Enhancements::customizer_link( |
65
|
|
|
array( |
66
|
|
|
'return_url' => wp_get_referer(), |
67
|
|
|
) |
68
|
|
|
); |
69
|
|
|
} else { |
70
|
|
|
$configuration_link = admin_url( 'themes.php?page=editcss#settingsdiv' ); |
71
|
|
|
} |
72
|
|
|
|
73
|
|
|
return $configuration_link; |
74
|
|
|
} |
75
|
|
|
|
76
|
|
View Code Duplication |
function custom_css_configuration_load() { |
|
|
|
|
77
|
|
|
// Redirect to Core's CSS editor in the customizer if the feature is available. |
78
|
|
|
if ( function_exists( 'wp_get_custom_css' ) ) { |
79
|
|
|
$configuration_link = Jetpack_Custom_CSS_Enhancements::customizer_link( |
80
|
|
|
array( |
81
|
|
|
'return_url' => wp_get_referer(), |
82
|
|
|
) |
83
|
|
|
); |
84
|
|
|
} else { |
85
|
|
|
$configuration_link = admin_url( 'themes.php?page=editcss#settingsdiv' ); |
86
|
|
|
} |
87
|
|
|
|
88
|
|
|
wp_safe_redirect( $configuration_link ); |
89
|
|
|
exit; |
90
|
|
|
} |
91
|
|
|
|
92
|
|
|
jetpack_load_custom_css(); |
93
|
|
|
|
Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.
You can also find more detailed suggestions in the “Code” section of your repository.