Version Description
- Bug Fix: When the handle's key on update was equal with 0 (for remove global unload), the rule would not be remove *
Download this release
Release Info
Developer | gabelivan |
Plugin | Asset CleanUp: Page Speed Booster |
Version | 1.2.4.1 |
Comparing to | |
See all releases |
Code changes from version 1.2.2 to 1.2.4.1
- assets/icheck/icheck.min.js +0 -0
- assets/icheck/skins/square/red.css +0 -0
- assets/icheck/skins/square/red.png +0 -0
- assets/icheck/skins/square/red@2x.png +0 -0
- assets/script.js +44 -12
- assets/script.min.js +1 -0
- assets/style.css +55 -148
- assets/style.min.css +1 -0
- assets/style.scss +23 -5
- classes/GlobalRules.php +129 -0
- classes/HomePage.php +22 -45
- classes/Main.php +111 -504
- classes/Menu.php +12 -2
- classes/Misc.php +83 -0
- classes/OwnAssets.php +160 -0
- classes/Update.php +525 -0
- readme.txt +23 -13
- templates/meta-box-loaded.php +201 -26
- templates/settings-frontend.php +2 -2
- templates/settings-globals.php +237 -0
- templates/settings-home-page.php +1 -1
- templates/settings-plugin.php +1 -1
- wpacu-load.php +16 -10
- wpacu.php +2 -2
assets/icheck/icheck.min.js
CHANGED
File without changes
|
assets/icheck/skins/square/red.css
CHANGED
File without changes
|
assets/icheck/skins/square/red.png
CHANGED
File without changes
|
assets/icheck/skins/square/red@2x.png
CHANGED
File without changes
|
assets/script.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/**
|
2 |
-
* WP Asset
|
3 |
*/
|
4 |
jQuery(document).ready(function($) {
|
5 |
//
|
@@ -7,7 +7,7 @@ jQuery(document).ready(function($) {
|
|
7 |
//
|
8 |
var WpAssetCleanUp = {
|
9 |
load: function() {
|
10 |
-
var cbSelector = '.icheckbox_square-red';
|
11 |
|
12 |
$(cbSelector).iCheck({
|
13 |
checkboxClass: 'icheckbox_square-red',
|
@@ -22,39 +22,44 @@ jQuery(document).ready(function($) {
|
|
22 |
$(event.target).closest('tr').removeClass('wpacu_not_load');
|
23 |
});
|
24 |
|
25 |
-
var handle;
|
26 |
-
|
27 |
// Unload Everywhere
|
28 |
$('.wpacu_global_unload').click(function() {
|
29 |
handle = $(this).attr('data-handle');
|
30 |
|
31 |
if ($(this).prop('checked')) {
|
32 |
$(this).parent('label').addClass('wpacu_global_checked');
|
33 |
-
|
34 |
|
|
|
35 |
if ($(this).hasClass('wpacu_global_style')) {
|
36 |
$('#style_' + handle).iCheck('check').iCheck('disable');
|
37 |
} else if($(this).hasClass('wpacu_global_script')) {
|
38 |
$('#script_' + handle).iCheck('check').iCheck('disable');
|
39 |
}
|
|
|
40 |
} else {
|
41 |
$(this).parent('label').removeClass('wpacu_global_checked');
|
42 |
-
|
43 |
|
|
|
44 |
if ($(this).hasClass('wpacu_global_style')) {
|
45 |
$('#style_' + handle).iCheck('uncheck').iCheck('enable');
|
46 |
} else if($(this).hasClass('wpacu_global_script')) {
|
47 |
$('#script_' + handle).iCheck('uncheck').iCheck('enable');
|
48 |
}
|
|
|
49 |
|
|
|
50 |
// Un-check make exception as it is not relevant
|
51 |
// if unload everywhere is selected
|
52 |
$('#wpacu_style_load_it_' + handle)
|
53 |
.prop('checked', false)
|
54 |
.parent('label').removeClass('wpacu_global_unload_exception');
|
|
|
55 |
}
|
56 |
});
|
57 |
|
|
|
58 |
// Asset Global Options
|
59 |
$('.wpacu_global_option').click(function() {
|
60 |
var handle = $(this).attr('data-handle'), handleType;
|
@@ -67,10 +72,10 @@ jQuery(document).ready(function($) {
|
|
67 |
|
68 |
if ($(this).val() == 'remove') {
|
69 |
$(this).closest('tr').removeClass('wpacu_not_load');
|
70 |
-
|
71 |
$('#wpacu_load_it_option_'+ handleType +'_'+ handle).hide();
|
|
|
72 |
|
73 |
-
|
74 |
&& !$('#wpacu_'+ handleType +'_load_it_'+ handle).prop('checked')) {
|
75 |
$(this).closest('tr').addClass('wpacu_not_load');
|
76 |
}
|
@@ -79,9 +84,19 @@ jQuery(document).ready(function($) {
|
|
79 |
$('#wpacu_load_it_option_'+ handleType + '_' + handle).show();
|
80 |
}
|
81 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
83 |
// Load it checkbox
|
84 |
$('.wpacu_load_it_option').click(function() {
|
|
|
85 |
var handle = $(this).attr('data-handle'), wpacu_input_name;
|
86 |
|
87 |
if ($(this).hasClass('wpacu_style')) {
|
@@ -89,13 +104,14 @@ jQuery(document).ready(function($) {
|
|
89 |
} else if ($(this).hasClass('wpacu_script')) {
|
90 |
wpacu_input_name = 'wpacu_options_scripts['+ handle +']';
|
91 |
}
|
|
|
92 |
|
93 |
if ($(this).prop('checked')) {
|
94 |
$(this).parent('label').addClass('wpacu_global_unload_exception');
|
95 |
-
|
96 |
-
} else if ($('input[name="'+ wpacu_input_name +'"]:checked').val() == 'default') {
|
97 |
-
|
98 |
-
|
99 |
} else {
|
100 |
$(this).parent('label').removeClass('wpacu_global_unload_exception');
|
101 |
}
|
@@ -103,6 +119,22 @@ jQuery(document).ready(function($) {
|
|
103 |
}
|
104 |
};
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
//
|
107 |
// Asset Front-end Edit (if setting is enabled)
|
108 |
//
|
1 |
/**
|
2 |
+
* WP Asset CleanUp
|
3 |
*/
|
4 |
jQuery(document).ready(function($) {
|
5 |
//
|
7 |
//
|
8 |
var WpAssetCleanUp = {
|
9 |
load: function() {
|
10 |
+
var cbSelector = '.icheckbox_square-red', handle;
|
11 |
|
12 |
$(cbSelector).iCheck({
|
13 |
checkboxClass: 'icheckbox_square-red',
|
22 |
$(event.target).closest('tr').removeClass('wpacu_not_load');
|
23 |
});
|
24 |
|
|
|
|
|
25 |
// Unload Everywhere
|
26 |
$('.wpacu_global_unload').click(function() {
|
27 |
handle = $(this).attr('data-handle');
|
28 |
|
29 |
if ($(this).prop('checked')) {
|
30 |
$(this).parent('label').addClass('wpacu_global_checked');
|
31 |
+
//$(this).closest('tr').addClass('wpacu_not_load');
|
32 |
|
33 |
+
/*
|
34 |
if ($(this).hasClass('wpacu_global_style')) {
|
35 |
$('#style_' + handle).iCheck('check').iCheck('disable');
|
36 |
} else if($(this).hasClass('wpacu_global_script')) {
|
37 |
$('#script_' + handle).iCheck('check').iCheck('disable');
|
38 |
}
|
39 |
+
*/
|
40 |
} else {
|
41 |
$(this).parent('label').removeClass('wpacu_global_checked');
|
42 |
+
//$(this).closest('tr').removeClass('wpacu_not_load');
|
43 |
|
44 |
+
/*
|
45 |
if ($(this).hasClass('wpacu_global_style')) {
|
46 |
$('#style_' + handle).iCheck('uncheck').iCheck('enable');
|
47 |
} else if($(this).hasClass('wpacu_global_script')) {
|
48 |
$('#script_' + handle).iCheck('uncheck').iCheck('enable');
|
49 |
}
|
50 |
+
*/
|
51 |
|
52 |
+
/*
|
53 |
// Un-check make exception as it is not relevant
|
54 |
// if unload everywhere is selected
|
55 |
$('#wpacu_style_load_it_' + handle)
|
56 |
.prop('checked', false)
|
57 |
.parent('label').removeClass('wpacu_global_unload_exception');
|
58 |
+
*/
|
59 |
}
|
60 |
});
|
61 |
|
62 |
+
/*
|
63 |
// Asset Global Options
|
64 |
$('.wpacu_global_option').click(function() {
|
65 |
var handle = $(this).attr('data-handle'), handleType;
|
72 |
|
73 |
if ($(this).val() == 'remove') {
|
74 |
$(this).closest('tr').removeClass('wpacu_not_load');
|
|
|
75 |
$('#wpacu_load_it_option_'+ handleType +'_'+ handle).hide();
|
76 |
+
}
|
77 |
|
78 |
+
if ($(this).val() == 'default'
|
79 |
&& !$('#wpacu_'+ handleType +'_load_it_'+ handle).prop('checked')) {
|
80 |
$(this).closest('tr').addClass('wpacu_not_load');
|
81 |
}
|
84 |
$('#wpacu_load_it_option_'+ handleType + '_' + handle).show();
|
85 |
}
|
86 |
});
|
87 |
+
*/
|
88 |
+
|
89 |
+
$('.wpacu_post_type_unload').click(function() {
|
90 |
+
if ($(this).prop('checked')) {
|
91 |
+
$(this).parent('label').addClass('wpacu_post_type_unload_active');
|
92 |
+
} else {
|
93 |
+
$(this).parent('label').removeClass('wpacu_post_type_unload_active');
|
94 |
+
}
|
95 |
+
});
|
96 |
|
97 |
// Load it checkbox
|
98 |
$('.wpacu_load_it_option').click(function() {
|
99 |
+
/*
|
100 |
var handle = $(this).attr('data-handle'), wpacu_input_name;
|
101 |
|
102 |
if ($(this).hasClass('wpacu_style')) {
|
104 |
} else if ($(this).hasClass('wpacu_script')) {
|
105 |
wpacu_input_name = 'wpacu_options_scripts['+ handle +']';
|
106 |
}
|
107 |
+
*/
|
108 |
|
109 |
if ($(this).prop('checked')) {
|
110 |
$(this).parent('label').addClass('wpacu_global_unload_exception');
|
111 |
+
//$(this).closest('tr').removeClass('wpacu_not_load');
|
112 |
+
///} else if ($('input[name="'+ wpacu_input_name +'"]:checked').val() == 'default') {
|
113 |
+
// $(this).parent('label').removeClass('wpacu_global_unload_exception');
|
114 |
+
//$(this).closest('tr').addClass('wpacu_not_load');
|
115 |
} else {
|
116 |
$(this).parent('label').removeClass('wpacu_global_unload_exception');
|
117 |
}
|
119 |
}
|
120 |
};
|
121 |
|
122 |
+
$('#wpacu_post_type_select').change(function() {
|
123 |
+
$('#wpacu_post_type_form').submit();
|
124 |
+
});
|
125 |
+
|
126 |
+
// Items are marked for removal from the unload list
|
127 |
+
// from either "Everywhere" or "Post Type"
|
128 |
+
$('.wpacu_remove_rule').click(function() {
|
129 |
+
var $wpacuGlobalRuleRow = $(this).parents('.wpacu_global_rule_row');
|
130 |
+
|
131 |
+
if ($(this).prop('checked')) {
|
132 |
+
$wpacuGlobalRuleRow.addClass('selected');
|
133 |
+
} else {
|
134 |
+
$wpacuGlobalRuleRow.removeClass('selected');
|
135 |
+
}
|
136 |
+
});
|
137 |
+
|
138 |
//
|
139 |
// Asset Front-end Edit (if setting is enabled)
|
140 |
//
|
assets/script.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
jQuery(document).ready(function(a){var b={load:function(){var b,c=".icheckbox_square-red";a(c).iCheck({checkboxClass:"icheckbox_square-red",increaseArea:"20%"}),a(c).on("ifChecked",function(b){a(b.target).closest("tr").addClass("wpacu_not_load")}),a(c).on("ifUnchecked",function(b){a(b.target).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_global_unload").click(function(){b=a(this).attr("data-handle"),a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_checked"):a(this).parent("label").removeClass("wpacu_global_checked")}),a(".wpacu_post_type_unload").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_post_type_unload_active"):a(this).parent("label").removeClass("wpacu_post_type_unload_active")}),a(".wpacu_load_it_option").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_unload_exception"):a(this).parent("label").removeClass("wpacu_global_unload_exception")})}};if(a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a(".wpacu_remove_rule").click(function(){var b=a(this).parents(".wpacu_global_rule_row");a(this).prop("checked")?b.addClass("selected"):b.removeClass("selected")}),a("#wpacu_wrap_assets").length>0&&b.load(),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;var c=wpacu_object.plugin_name+"_load=1";jQuery.post(wpacu_object.post_url,c,function(c){var d={action:wpacu_object.plugin_name+"_get_loaded_assets",contents:c,post_id:wpacu_object.post_id,post_url:wpacu_object.post_url};jQuery.post(wpacu_object.ajax_url,d,function(c){return""!=c&&(a("#wpacu_meta_box_content").html(c),a("#wpacu_home_page_form").length>0&&a("#submit").show(),void b.load())})})});
|
assets/style.css
CHANGED
@@ -1,156 +1,63 @@
|
|
1 |
-
tr.wpacu_not_load th, tr.wpacu_not_load td {
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
#wpacu_meta_box_content {
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
#
|
17 |
-
|
18 |
-
background-color: #f5f5f5; }
|
19 |
-
|
20 |
-
#wpacu_meta_box_content div.wpacu_warning, #wpacu_wrap_assets div.wpacu_warning {
|
21 |
-
border: 1px solid #cc0000; }
|
22 |
-
|
23 |
-
#wpacu_meta_box_content div.wpacu_verified {
|
24 |
-
padding: 10px;
|
25 |
-
background-color: #f5f5f5;
|
26 |
-
border-left: 1px solid #ddd; }
|
27 |
-
#wpacu_meta_box_content div.wpacu_verified span {
|
28 |
-
color: #0073aa;
|
29 |
-
font-weight: bold; }
|
30 |
-
#wpacu_meta_box_content ul.wpacu_asset_options {
|
31 |
-
margin: 0;
|
32 |
-
padding: 0; }
|
33 |
-
#wpacu_meta_box_content ul.wpacu_asset_options li {
|
34 |
-
list-style: none;
|
35 |
-
display: inline-block; }
|
36 |
-
#wpacu_meta_box_content ul.wpacu_asset_options label {
|
37 |
-
margin-right: 20px;
|
38 |
-
font-weight: normal; }
|
39 |
|
40 |
/*
|
41 |
* Asset List Styling: Front-end and Back-end
|
42 |
*/
|
43 |
-
#wpacu_wrap_assets {
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
#wpacu_wrap_assets p {
|
57 |
-
margin: 10px 0;
|
58 |
-
line-height: 22px;
|
59 |
-
text-align: left; }
|
60 |
-
#wpacu_wrap_assets h1 {
|
61 |
-
margin: 0 0 20px;
|
62 |
-
font-size: 160%;
|
63 |
-
text-align: left; }
|
64 |
-
#wpacu_wrap_assets h3 {
|
65 |
-
margin: 20px 0;
|
66 |
-
font-size: 130%; }
|
67 |
-
|
68 |
-
.wpacu_verified {
|
69 |
-
margin: 0 0 10px 0; }
|
70 |
-
|
71 |
-
.wpacu_asset_row td {
|
72 |
-
padding: 10px; }
|
73 |
-
.wpacu_asset_row td p {
|
74 |
-
margin-bottom: 10px;
|
75 |
-
word-wrap: break-word; }
|
76 |
-
.wpacu_asset_row td label {
|
77 |
-
cursor: pointer !important;
|
78 |
-
display: inline-block !important;
|
79 |
-
font-size: 100%;
|
80 |
-
font-weight: normal; }
|
81 |
-
.wpacu_asset_row td label span {
|
82 |
-
font-size: 100% !important; }
|
83 |
-
.wpacu_asset_row td.wpacu_check {
|
84 |
-
width: 50px; }
|
85 |
|
86 |
/* Dashboard adjust */
|
87 |
-
body.wp-admin .wpacu_asset_row td.wpacu_check {
|
88 |
-
|
89 |
-
|
90 |
-
label.
|
91 |
-
|
92 |
-
label.
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
ul.wpacu_asset_options {
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
list-style: none;
|
103 |
-
display: inline-block; }
|
104 |
-
ul.wpacu_asset_options label {
|
105 |
-
margin-right: 20px;
|
106 |
-
font-weight: normal; }
|
107 |
-
ul.wpacu_asset_options label input {
|
108 |
-
margin-right: 4px; }
|
109 |
|
110 |
/* Assets Table */
|
111 |
-
.wp-asset-clean-up.widefat {
|
112 |
-
|
113 |
-
|
114 |
-
.wpacu_widefat {
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
.
|
120 |
-
|
121 |
-
|
122 |
-
.wpacu_update_btn {
|
123 |
-
-moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
124 |
-
-webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
125 |
-
box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
126 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
127 |
-
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
128 |
-
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
129 |
-
background: -o-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
130 |
-
background: -ms-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
131 |
-
background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%) !important;
|
132 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0) !important;
|
133 |
-
background-color: #007dc1 !important;
|
134 |
-
-moz-border-radius: 3px !important;
|
135 |
-
-webkit-border-radius: 3px !important;
|
136 |
-
border-radius: 3px !important;
|
137 |
-
border: 1px solid #124d77 !important;
|
138 |
-
display: inline-block !important;
|
139 |
-
cursor: pointer !important;
|
140 |
-
color: #ffffff !important;
|
141 |
-
font-size: 15px !important;
|
142 |
-
padding: 10px 24px !important;
|
143 |
-
text-decoration: none !important;
|
144 |
-
text-shadow: 0 1px 0 #154682 !important; }
|
145 |
-
.wpacu_update_btn:hover {
|
146 |
-
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
147 |
-
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
148 |
-
background: -webkit-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
149 |
-
background: -o-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
150 |
-
background: -ms-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
151 |
-
background: linear-gradient(to bottom, #0061a7 5%, #007dc1 100%) !important;
|
152 |
-
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1',GradientType=0) !important;
|
153 |
-
background-color: #0061a7 !important; }
|
154 |
-
.wpacu_update_btn:active {
|
155 |
-
position: relative !important;
|
156 |
-
top: 1px !important; }
|
1 |
+
tr.wpacu_not_load th, tr.wpacu_not_load td { background: #FFE1E1; }
|
2 |
+
|
3 |
+
.widefat .check-column.wpacu_check { padding: 10px; }
|
4 |
+
|
5 |
+
#wpacu_meta_box_content { width: 99%; }
|
6 |
+
#wpacu_meta_box_content h3 { margin-left: 0; padding-left: 0; }
|
7 |
+
#wpacu_meta_box_content div.wpacu_note { padding: 10px; background-color: #f5f5f5; }
|
8 |
+
|
9 |
+
#wpacu_wrap_assets div.wpacu_note { padding: 10px; background-color: #f5f5f5; }
|
10 |
+
|
11 |
+
#wpacu_meta_box_content div.wpacu_warning, #wpacu_wrap_assets div.wpacu_warning { border: 1px solid #cc0000; }
|
12 |
+
|
13 |
+
#wpacu_meta_box_content div.wpacu_verified { padding: 10px; background-color: #f5f5f5; border-left: 1px solid #ddd; }
|
14 |
+
#wpacu_meta_box_content div.wpacu_verified span { color: #0073aa; font-weight: bold; }
|
15 |
+
#wpacu_meta_box_content ul.wpacu_asset_options { margin: 0; padding: 0; }
|
16 |
+
#wpacu_meta_box_content ul.wpacu_asset_options li { list-style: none; display: inline-block; }
|
17 |
+
#wpacu_meta_box_content ul.wpacu_asset_options label { margin-right: 20px; font-weight: normal; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
/*
|
20 |
* Asset List Styling: Front-end and Back-end
|
21 |
*/
|
22 |
+
#wpacu_wrap_assets { color: #000000 !important; text-align: left; clear: both; width: 90%; padding: 20px; margin: 30px 0 0 15px; border: 1px solid #cdcdcd; z-index: 10000 !important; position: relative; background-color: white; }
|
23 |
+
#wpacu_wrap_assets img { display: inline-block !important; }
|
24 |
+
#wpacu_wrap_assets p { margin: 10px 0; line-height: 22px; text-align: left; }
|
25 |
+
#wpacu_wrap_assets h1 { margin: 0 0 20px; font-size: 160%; text-align: left; }
|
26 |
+
#wpacu_wrap_assets h3 { margin: 20px 0; font-size: 130%; }
|
27 |
+
|
28 |
+
.wpacu_verified { margin: 0 0 10px 0; }
|
29 |
+
|
30 |
+
.wpacu_asset_row td { padding: 10px; }
|
31 |
+
.wpacu_asset_row td p { margin-bottom: 10px; word-wrap: break-word; }
|
32 |
+
.wpacu_asset_row td label { cursor: pointer !important; display: inline-block !important; font-size: 100%; font-weight: normal; }
|
33 |
+
.wpacu_asset_row td label span { font-size: 100% !important; }
|
34 |
+
.wpacu_asset_row td.wpacu_check { width: 50px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
/* Dashboard adjust */
|
37 |
+
body.wp-admin .wpacu_asset_row td.wpacu_check { width: 25px; }
|
38 |
+
|
39 |
+
label.wpacu_add_global { cursor: pointer; }
|
40 |
+
label.wpacu_global_checked { font-weight: bold; color: #d54e21; }
|
41 |
+
label.wpacu_global_unload_exception { font-weight: bold !important; }
|
42 |
+
label.wpacu_post_type_unload_active { color: #d54e21; }
|
43 |
+
|
44 |
+
tr.wpacu_global_rule_row.selected { background: #e7e7e7; }
|
45 |
+
|
46 |
+
.nav-tab-wrapper { border-bottom: 1px solid #ccc; width: 95%; }
|
47 |
+
|
48 |
+
ul.wpacu_asset_options { margin: 0; padding: 0; }
|
49 |
+
ul.wpacu_asset_options li { list-style: none; display: inline-block; }
|
50 |
+
ul.wpacu_asset_options label { margin-right: 20px; font-weight: normal; }
|
51 |
+
ul.wpacu_asset_options label input { margin-right: 4px; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
/* Assets Table */
|
54 |
+
.wp-asset-clean-up.widefat { width: 99%; }
|
55 |
+
|
56 |
+
.wpacu_widefat { border: 1px solid #e5e5e5 !important; }
|
57 |
+
.wpacu_widefat td { border: 1px solid #e5e5e5 !important; }
|
58 |
+
|
59 |
+
.wpacu_striped > tbody > :nth-child(odd), ul.wpacu_striped > :nth-child(odd) { background-color: #f9f9f9 !important; }
|
60 |
+
|
61 |
+
.wpacu_update_btn { -moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important; -webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important; box-shadow: inset 0 1px 0 0 #54a3f7 !important; background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important; background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -o-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: -ms-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important; background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7',GradientType=0) !important; background-color: #007dc1 !important; -moz-border-radius: 3px !important; -webkit-border-radius: 3px !important; border-radius: 3px !important; border: 1px solid #124d77 !important; display: inline-block !important; cursor: pointer !important; color: #ffffff !important; font-size: 15px !important; padding: 10px 24px !important; text-decoration: none !important; text-shadow: 0 1px 0 #154682 !important; }
|
62 |
+
.wpacu_update_btn:hover { background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important; background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -webkit-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -o-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: -ms-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important; background: linear-gradient(to bottom, #0061a7 5%, #007dc1 100%) !important; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1',GradientType=0) !important; background-color: #0061a7 !important; }
|
63 |
+
.wpacu_update_btn:active { position: relative !important; top: 1px !important; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/style.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1}.widefat .check-column.wpacu_check{padding:10px}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note,#wpacu_wrap_assets div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content div.wpacu_warning,#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content div.wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content div.wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block}#wpacu_wrap_assets img,.wpacu_asset_row td label{display:inline-block!important}#wpacu_meta_box_content ul.wpacu_asset_options label{margin-right:20px;font-weight:400}#wpacu_wrap_assets{color:#000!important;text-align:left;clear:both;width:90%;padding:20px;margin:30px 0 0 15px;border:1px solid #cdcdcd;z-index:10000!important;position:relative;background-color:#fff}#wpacu_wrap_assets p{margin:10px 0;line-height:22px;text-align:left}#wpacu_wrap_assets h1{margin:0 0 20px;font-size:160%;text-align:left}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}.wpacu_verified{margin:0 0 10px}.wpacu_asset_row td{padding:10px}.wpacu_asset_row td p{margin-bottom:10px;word-wrap:break-word}.wpacu_asset_row td label{cursor:pointer!important;font-size:100%;font-weight:400}.wpacu_asset_row td label span{font-size:100%!important}.wpacu_asset_row td.wpacu_check{width:50px}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px}label.wpacu_add_global{cursor:pointer}label.wpacu_global_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}label.wpacu_post_type_unload_active{color:#d54e21}tr.wpacu_global_rule_row.selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}ul.wpacu_asset_options{margin:0;padding:0}ul.wpacu_asset_options li{list-style:none;display:inline-block}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wp-asset-clean-up.widefat{width:99%}.wpacu_widefat,.wpacu_widefat td{border:1px solid #e5e5e5!important}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7', GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important}.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1', GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}
|
assets/style.scss
CHANGED
@@ -127,10 +127,25 @@ label {
|
|
127 |
color: #d54e21;
|
128 |
}
|
129 |
&.wpacu_global_unload_exception {
|
130 |
-
font-weight: bold;
|
|
|
|
|
|
|
|
|
131 |
}
|
132 |
}
|
133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
ul.wpacu_asset_options {
|
135 |
margin: 0;
|
136 |
padding: 0;
|
@@ -148,6 +163,9 @@ ul.wpacu_asset_options {
|
|
148 |
}
|
149 |
|
150 |
/* Assets Table */
|
|
|
|
|
|
|
151 |
|
152 |
.wpacu_widefat {
|
153 |
border: 1px solid #e5e5e5 !important;
|
@@ -161,9 +179,9 @@ ul.wpacu_asset_options {
|
|
161 |
}
|
162 |
|
163 |
.wpacu_update_btn {
|
164 |
-
-moz-box-shadow: inset
|
165 |
-
-webkit-box-shadow: inset
|
166 |
-
box-shadow: inset
|
167 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
168 |
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
169 |
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
@@ -182,7 +200,7 @@ ul.wpacu_asset_options {
|
|
182 |
font-size: 15px !important;
|
183 |
padding: 10px 24px !important;
|
184 |
text-decoration: none !important;
|
185 |
-
text-shadow:
|
186 |
&:hover {
|
187 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
188 |
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
127 |
color: #d54e21;
|
128 |
}
|
129 |
&.wpacu_global_unload_exception {
|
130 |
+
font-weight: bold !important;
|
131 |
+
}
|
132 |
+
|
133 |
+
&.wpacu_post_type_unload_active {
|
134 |
+
color: #d54e21;
|
135 |
}
|
136 |
}
|
137 |
|
138 |
+
tr.wpacu_global_rule_row {
|
139 |
+
&.selected {
|
140 |
+
background: #e7e7e7;
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
.nav-tab-wrapper {
|
145 |
+
border-bottom: 1px solid #ccc;
|
146 |
+
width: 95%;
|
147 |
+
}
|
148 |
+
|
149 |
ul.wpacu_asset_options {
|
150 |
margin: 0;
|
151 |
padding: 0;
|
163 |
}
|
164 |
|
165 |
/* Assets Table */
|
166 |
+
.wp-asset-clean-up.widefat {
|
167 |
+
width: 99%;
|
168 |
+
}
|
169 |
|
170 |
.wpacu_widefat {
|
171 |
border: 1px solid #e5e5e5 !important;
|
179 |
}
|
180 |
|
181 |
.wpacu_update_btn {
|
182 |
+
-moz-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
183 |
+
-webkit-box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
184 |
+
box-shadow: inset 0 1px 0 0 #54a3f7 !important;
|
185 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #007dc1), color-stop(1, #0061a7)) !important;
|
186 |
background: -moz-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
187 |
background: -webkit-linear-gradient(top, #007dc1 5%, #0061a7 100%) !important;
|
200 |
font-size: 15px !important;
|
201 |
padding: 10px 24px !important;
|
202 |
text-decoration: none !important;
|
203 |
+
text-shadow: 0 1px 0 #154682 !important;
|
204 |
&:hover {
|
205 |
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.05, #0061a7), color-stop(1, #007dc1)) !important;
|
206 |
background: -moz-linear-gradient(top, #0061a7 5%, #007dc1 100%) !important;
|
classes/GlobalRules.php
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class GlobalRules
|
6 |
+
* @package WpAssetCleanUp
|
7 |
+
*/
|
8 |
+
class GlobalRules
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
public $wpacuFor = 'everywhere';
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @var string
|
17 |
+
*/
|
18 |
+
public $wpacuPostType = 'post';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* @var array
|
22 |
+
*/
|
23 |
+
public $data = array();
|
24 |
+
|
25 |
+
/**
|
26 |
+
* GlobalRules constructor.
|
27 |
+
*/
|
28 |
+
public function __construct()
|
29 |
+
{
|
30 |
+
$this->wpacuFor = isset($_REQUEST['wpacu_for'])
|
31 |
+
? $_REQUEST['wpacu_for']
|
32 |
+
: $this->wpacuFor;
|
33 |
+
|
34 |
+
$this->wpacuPostType = isset($_REQUEST['wpacu_post_type'])
|
35 |
+
? $_REQUEST['wpacu_post_type']
|
36 |
+
: $this->wpacuPostType;
|
37 |
+
|
38 |
+
if (isset($_REQUEST['wpacu_update']) && $_REQUEST['wpacu_update'] == 1) {
|
39 |
+
$this->update();
|
40 |
+
}
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function getCount()
|
47 |
+
{
|
48 |
+
$values = array();
|
49 |
+
|
50 |
+
if ($this->wpacuFor === 'everywhere') {
|
51 |
+
$values = Main::instance()->getGlobalUnload();
|
52 |
+
} elseif ($this->wpacuFor === 'post_types') {
|
53 |
+
$values = Main::instance()->getPostTypeUnload($this->wpacuPostType);
|
54 |
+
}
|
55 |
+
|
56 |
+
return $values;
|
57 |
+
}
|
58 |
+
|
59 |
+
/**
|
60 |
+
*
|
61 |
+
*/
|
62 |
+
public function page()
|
63 |
+
{
|
64 |
+
$this->data['for'] = $this->wpacuFor;
|
65 |
+
|
66 |
+
if ($this->wpacuFor === 'post_types') {
|
67 |
+
$this->data['post_type'] = $this->wpacuPostType;
|
68 |
+
|
69 |
+
// Get All Post Types
|
70 |
+
$postTypes = get_post_types(array('public' => true));
|
71 |
+
$this->data['post_types_list'] = $postTypes;
|
72 |
+
}
|
73 |
+
|
74 |
+
$this->data['values'] = $this->getCount();
|
75 |
+
|
76 |
+
$this->data['nonce_name'] = Update::NONCE_FIELD_NAME;
|
77 |
+
$this->data['nonce_action'] = Update::NONCE_ACTION_NAME;
|
78 |
+
|
79 |
+
Main::instance()->parseTemplate('settings-globals', $this->data, true);
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
*
|
84 |
+
*/
|
85 |
+
public function update()
|
86 |
+
{
|
87 |
+
if ($this->wpacuFor === 'everywhere') {
|
88 |
+
$removed = (new Update)->removeEverywhereUnloads();
|
89 |
+
|
90 |
+
if ($removed) {
|
91 |
+
add_action('admin_notices', array($this, 'noticeGlobalsRemoved'));
|
92 |
+
}
|
93 |
+
}
|
94 |
+
|
95 |
+
if ($this->wpacuFor === 'post_types') {
|
96 |
+
$removed = (new Update)->removeBulkUnloads($this->wpacuPostType);
|
97 |
+
|
98 |
+
if ($removed) {
|
99 |
+
add_action('admin_notices', array($this, 'noticePostTypesRemoved'));
|
100 |
+
}
|
101 |
+
}
|
102 |
+
}
|
103 |
+
|
104 |
+
/**
|
105 |
+
*
|
106 |
+
*/
|
107 |
+
public function noticeGlobalsRemoved()
|
108 |
+
{
|
109 |
+
?>
|
110 |
+
<div class="updated notice is-dismissible">
|
111 |
+
<p>The selected styles/scripts were removed from the global unload list and they will now load in the pages/posts,
|
112 |
+
unless you have other rules that would prevent them from loading.</p>
|
113 |
+
</div>
|
114 |
+
<?php
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
*
|
119 |
+
*/
|
120 |
+
public function noticePostTypesRemoved()
|
121 |
+
{
|
122 |
+
?>
|
123 |
+
<div class="updated notice is-dismissible">
|
124 |
+
<p>The selected styles/scripts were removed from the unload list for <strong><u><?php echo $this->wpacuPostType; ?></u></strong>
|
125 |
+
post type and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.</p>
|
126 |
+
</div>
|
127 |
+
<?php
|
128 |
+
}
|
129 |
+
}
|
classes/HomePage.php
CHANGED
@@ -20,59 +20,36 @@ class HomePage
|
|
20 |
$this->data['nonce_name'] = WPACU_PLUGIN_NAME.'_settings';
|
21 |
$this->data['show_on_front'] = get_option('show_on_front');
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
if ($this->data['page_on_front']) {
|
30 |
-
$this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
|
31 |
-
}
|
32 |
|
33 |
-
|
|
|
|
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
} elseif ($this->data['show_on_front'] === 'posts') {
|
39 |
-
// Your latest posts
|
40 |
-
$postUrl = get_option('siteurl');
|
41 |
|
42 |
-
|
43 |
-
$postUrl .= '/';
|
44 |
-
}
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
add_action('admin_enqueue_scripts', array(Main::instance(), 'stylesAndScriptsForAdmin'));
|
49 |
}
|
50 |
-
}
|
51 |
-
|
52 |
-
|
53 |
-
/**
|
54 |
-
* @param $wpacuNoLoadAssets
|
55 |
-
*/
|
56 |
-
public static function updateFrontPage($wpacuNoLoadAssets)
|
57 |
-
{
|
58 |
-
if (! is_array($wpacuNoLoadAssets)) {
|
59 |
-
return; // only arrays (empty or not) should be used
|
60 |
-
}
|
61 |
|
62 |
-
|
|
|
|
|
63 |
|
64 |
-
|
65 |
-
add_option(WPACU_PLUGIN_NAME . '_front_page_no_load', $jsonNoAssetsLoadList);
|
66 |
}
|
67 |
-
|
68 |
-
// If globally disabled, make exception to load for submitted assets
|
69 |
-
Main::instance()->saveLoadExceptions('front_page');
|
70 |
-
|
71 |
-
// Any global unloads?
|
72 |
-
Main::instance()->saveToGlobalUnload();
|
73 |
-
|
74 |
-
// Any global unloads removed?
|
75 |
-
Main::instance()->removeGlobalUnloads();
|
76 |
}
|
77 |
|
78 |
/**
|
@@ -87,7 +64,7 @@ class HomePage
|
|
87 |
? $_POST[$this->data['nonce_name']] : '';
|
88 |
|
89 |
if (is_array($wpacuNoLoadAssets) && wp_verify_nonce($noncePost, $this->data['nonce_name'])) {
|
90 |
-
|
91 |
}
|
92 |
|
93 |
$this->data['nonce_value'] = wp_create_nonce($this->data['nonce_name']);
|
20 |
$this->data['nonce_name'] = WPACU_PLUGIN_NAME.'_settings';
|
21 |
$this->data['show_on_front'] = get_option('show_on_front');
|
22 |
|
23 |
+
$isHomePageEdit = (isset($_GET['page']) && $_GET['page'] == WPACU_PLUGIN_NAME.'_home_page');
|
24 |
|
25 |
+
// Only continue if we are on the plugin's homepage edit mode
|
26 |
+
if (! $isHomePageEdit) {
|
27 |
+
return '';
|
28 |
+
}
|
|
|
|
|
|
|
29 |
|
30 |
+
if ($this->data['show_on_front'] === 'page') {
|
31 |
+
// Front page displays: A Static Page
|
32 |
+
$this->data['page_on_front'] = get_option('page_on_front');
|
33 |
|
34 |
+
if ($this->data['page_on_front']) {
|
35 |
+
$this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
|
36 |
+
}
|
|
|
|
|
|
|
37 |
|
38 |
+
$this->data['page_for_posts'] = get_option('page_for_posts');
|
|
|
|
|
39 |
|
40 |
+
if ($this->data['page_for_posts']) {
|
41 |
+
$this->data['page_for_posts_title'] = get_the_title($this->data['page_for_posts']);
|
|
|
42 |
}
|
43 |
+
} elseif ($this->data['show_on_front'] === 'posts') {
|
44 |
+
// Your latest posts
|
45 |
+
$postUrl = get_option('siteurl');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
+
if (substr($postUrl, -1) != '/') {
|
48 |
+
$postUrl .= '/';
|
49 |
+
}
|
50 |
|
51 |
+
$this->data['site_url'] = $postUrl;
|
|
|
52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
}
|
54 |
|
55 |
/**
|
64 |
? $_POST[$this->data['nonce_name']] : '';
|
65 |
|
66 |
if (is_array($wpacuNoLoadAssets) && wp_verify_nonce($noncePost, $this->data['nonce_name'])) {
|
67 |
+
(new Update)->updateFrontPage($wpacuNoLoadAssets);
|
68 |
}
|
69 |
|
70 |
$this->data['nonce_value'] = wp_create_nonce($this->data['nonce_name']);
|
classes/Main.php
CHANGED
@@ -11,30 +11,17 @@ class Main
|
|
11 |
*
|
12 |
*/
|
13 |
const STARTDEL = '@ BEGIN WPACU PLUGIN JSON @';
|
14 |
-
/**
|
15 |
-
*
|
16 |
-
*/
|
17 |
-
const ENDDEL = '@ END WPACU PLUGIN JSON @';
|
18 |
|
19 |
/**
|
20 |
*
|
21 |
*/
|
22 |
-
const
|
23 |
-
/**
|
24 |
-
*
|
25 |
-
*/
|
26 |
-
const FRONT_NONCE_FIELD_NAME = 'wpacu_front_nonce';
|
27 |
|
28 |
/**
|
29 |
* @var array
|
30 |
*/
|
31 |
public $assetsRemoved = array();
|
32 |
|
33 |
-
/**
|
34 |
-
* @var bool
|
35 |
-
*/
|
36 |
-
public $loadPluginAssets = false; // default
|
37 |
-
|
38 |
/**
|
39 |
* @var array
|
40 |
*/
|
@@ -64,11 +51,17 @@ class Main
|
|
64 |
* @var array
|
65 |
*/
|
66 |
public $wpScripts = array();
|
|
|
67 |
/**
|
68 |
* @var array
|
69 |
*/
|
70 |
public $wpStyles = array();
|
71 |
|
|
|
|
|
|
|
|
|
|
|
72 |
/**
|
73 |
* @var Main|null
|
74 |
*/
|
@@ -94,19 +87,8 @@ class Main
|
|
94 |
$this->frontendShow = (get_option(WPACU_PLUGIN_NAME.'_frontend_show'));
|
95 |
|
96 |
// Early Triggers
|
97 |
-
// run right after the other 'wp_loaded' action
|
98 |
add_action('wp', array($this, 'setVars'), 2);
|
99 |
|
100 |
-
add_action('admin_enqueue_scripts', array($this, 'stylesAndScriptsForAdmin'));
|
101 |
-
add_action('wp_enqueue_scripts', array($this, 'stylesAndScriptsForPublic'));
|
102 |
-
|
103 |
-
if ($this->frontendShow) {
|
104 |
-
add_action('wp', array($this, 'frontendUpdate'), 1);
|
105 |
-
}
|
106 |
-
|
107 |
-
// After post/page is saved - update your styles/scripts lists
|
108 |
-
add_action('save_post', array($this, 'savePost'));
|
109 |
-
|
110 |
// Fetch the page in the background to see what scripts/styles are already loading
|
111 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load']) || $this->frontendShow) {
|
112 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
@@ -157,6 +139,10 @@ class Main
|
|
157 |
|
158 |
$type = (is_front_page()) ? 'front_page' : 'post';
|
159 |
|
|
|
|
|
|
|
|
|
160 |
$this->loadExceptions = $this->getLoadExceptions($type, $postId);
|
161 |
}
|
162 |
}
|
@@ -171,7 +157,7 @@ class Main
|
|
171 |
if ($obj->public > 0) {
|
172 |
add_meta_box(
|
173 |
WPACU_PLUGIN_NAME.'_asset_list',
|
174 |
-
__('WP Asset
|
175 |
array($this, 'renderMetaBoxContent'),
|
176 |
$postType,
|
177 |
'advanced',
|
@@ -208,7 +194,7 @@ class Main
|
|
208 |
|
209 |
$data['get_assets'] = $getAssets;
|
210 |
|
211 |
-
$data['fetch_url'] = $
|
212 |
|
213 |
$this->parseTemplate('meta-box', $data, true);
|
214 |
}
|
@@ -259,6 +245,20 @@ class Main
|
|
259 |
}
|
260 |
}
|
261 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
$list = array_unique($list);
|
263 |
}
|
264 |
|
@@ -345,6 +345,20 @@ class Main
|
|
345 |
}
|
346 |
}
|
347 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
$list = array_unique($list);
|
349 |
}
|
350 |
|
@@ -385,99 +399,6 @@ class Main
|
|
385 |
}
|
386 |
}
|
387 |
|
388 |
-
/**
|
389 |
-
* Save post metadata when a post is saved.
|
390 |
-
*
|
391 |
-
* @param $postId
|
392 |
-
*/
|
393 |
-
public function savePost($postId, $post = array())
|
394 |
-
{
|
395 |
-
if (empty($post)) {
|
396 |
-
global $post;
|
397 |
-
}
|
398 |
-
|
399 |
-
if (! isset($post->ID)) {
|
400 |
-
return;
|
401 |
-
}
|
402 |
-
|
403 |
-
// Has to be a public post type
|
404 |
-
$obj = get_post_type_object($post->post_type);
|
405 |
-
|
406 |
-
if ($obj->public < 1) {
|
407 |
-
return;
|
408 |
-
}
|
409 |
-
|
410 |
-
// only for admins
|
411 |
-
if (! current_user_can('manage_options')) {
|
412 |
-
return;
|
413 |
-
}
|
414 |
-
|
415 |
-
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
416 |
-
? $_POST[WPACU_PLUGIN_NAME] : array();
|
417 |
-
|
418 |
-
if (is_array($wpacuNoLoadAssets)) {
|
419 |
-
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
|
420 |
-
|
421 |
-
if (! add_post_meta($postId, '_'.WPACU_PLUGIN_NAME.'_no_load', $jsonNoAssetsLoadList, true)) {
|
422 |
-
update_post_meta($postId, '_'.WPACU_PLUGIN_NAME.'_no_load', $jsonNoAssetsLoadList);
|
423 |
-
}
|
424 |
-
}
|
425 |
-
|
426 |
-
// If globally disabled, make exception to load for submitted assets
|
427 |
-
Main::instance()->saveLoadExceptions('post', $postId);
|
428 |
-
|
429 |
-
// Any global unloads?
|
430 |
-
Main::instance()->saveToGlobalUnload();
|
431 |
-
|
432 |
-
// Any global unloads removed?
|
433 |
-
Main::instance()->removeGlobalUnloads();
|
434 |
-
}
|
435 |
-
|
436 |
-
/**
|
437 |
-
*
|
438 |
-
*/
|
439 |
-
public function frontendUpdate()
|
440 |
-
{
|
441 |
-
global $post;
|
442 |
-
|
443 |
-
// Check nonce
|
444 |
-
$nonceName = self::FRONT_NONCE_FIELD_NAME;
|
445 |
-
$nonceAction = self::FRONT_NONCE_ACTION_NAME;
|
446 |
-
|
447 |
-
$updateAction = isset($_POST['wpacu_update_asset_frontend']) ?
|
448 |
-
$_POST['wpacu_update_asset_frontend'] : '';
|
449 |
-
|
450 |
-
if (! isset($_POST[$nonceName]) || $updateAction != 1 || ! $this->frontendShow) {
|
451 |
-
return;
|
452 |
-
}
|
453 |
-
|
454 |
-
// only for admins
|
455 |
-
if (! current_user_can('manage_options')) {
|
456 |
-
return;
|
457 |
-
}
|
458 |
-
|
459 |
-
if (! wp_verify_nonce($_POST[$nonceName], $nonceAction)) {
|
460 |
-
$postUrlAnchor = get_permalink($post->ID).'#wpacu_wrap_assets';
|
461 |
-
wp_die(
|
462 |
-
sprintf(
|
463 |
-
__('The nonce expired or is not correct, thus the request was not processed. %sPlease retry%s.', WPACU_PLUGIN_NAME),
|
464 |
-
'<a href="'.$postUrlAnchor.'">',
|
465 |
-
'</a>'
|
466 |
-
),
|
467 |
-
__('Nonce Expired', WPACU_PLUGIN_NAME)
|
468 |
-
);
|
469 |
-
}
|
470 |
-
|
471 |
-
if (is_front_page()) {
|
472 |
-
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
473 |
-
? $_POST[WPACU_PLUGIN_NAME] : array();
|
474 |
-
|
475 |
-
HomePage::updateFrontPage($wpacuNoLoadAssets);
|
476 |
-
} else {
|
477 |
-
$this->savePost($post->ID, $post);
|
478 |
-
}
|
479 |
-
}
|
480 |
-
|
481 |
/**
|
482 |
* @param string $type
|
483 |
* @param string $postId
|
@@ -527,150 +448,6 @@ class Main
|
|
527 |
return $exceptionsList;
|
528 |
}
|
529 |
|
530 |
-
/**
|
531 |
-
* @param string $type
|
532 |
-
* @param string $postId
|
533 |
-
* @return bool
|
534 |
-
*/
|
535 |
-
public function saveLoadExceptions($type = 'post', $postId = '')
|
536 |
-
{
|
537 |
-
if ($type == 'post' && !$postId) {
|
538 |
-
// $postId needs to have a value if $type is a 'post' type
|
539 |
-
return false;
|
540 |
-
}
|
541 |
-
|
542 |
-
if (! in_array($type, array('post', 'front_page'))) {
|
543 |
-
// Invalid request
|
544 |
-
return false;
|
545 |
-
}
|
546 |
-
|
547 |
-
// Any global upload options
|
548 |
-
$isPostOptionStyles = (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it']));
|
549 |
-
$isPostOptionScripts = (isset($_POST['wpacu_scripts_load_it']) && ! empty($_POST['wpacu_scripts_load_it']));
|
550 |
-
|
551 |
-
$loadExceptionsStyles = $loadExceptionsScripts = array();
|
552 |
-
|
553 |
-
// Clear existing list first
|
554 |
-
if ($type == 'post') {
|
555 |
-
delete_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions');
|
556 |
-
} elseif ($type == 'front_page') {
|
557 |
-
delete_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions');
|
558 |
-
}
|
559 |
-
|
560 |
-
if (!$isPostOptionStyles && !$isPostOptionScripts) {
|
561 |
-
return false;
|
562 |
-
}
|
563 |
-
|
564 |
-
// Load Exception
|
565 |
-
if (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it'])) {
|
566 |
-
foreach ($_POST['wpacu_styles_load_it'] as $wpacuHandle) {
|
567 |
-
// Do not append it if the global unload is removed
|
568 |
-
if (isset($_POST['wpacu_options_styles'][$wpacuHandle])
|
569 |
-
&& $_POST['wpacu_options_styles'][$wpacuHandle] == 'remove') {
|
570 |
-
continue;
|
571 |
-
}
|
572 |
-
$loadExceptionsStyles[] = $wpacuHandle;
|
573 |
-
}
|
574 |
-
}
|
575 |
-
|
576 |
-
if (! empty($_POST['wpacu_scripts_load_it'])) {
|
577 |
-
foreach ($_POST['wpacu_scripts_load_it'] as $wpacuHandle) {
|
578 |
-
// Do not append it if the global unload is removed
|
579 |
-
if (isset($_POST['wpacu_options_scripts'][$wpacuHandle])
|
580 |
-
&& $_POST['wpacu_options_scripts'][$wpacuHandle] == 'remove') {
|
581 |
-
continue;
|
582 |
-
}
|
583 |
-
$loadExceptionsScripts[] = $wpacuHandle;
|
584 |
-
}
|
585 |
-
}
|
586 |
-
|
587 |
-
if (! empty($loadExceptionsStyles) || ! empty($loadExceptionsScripts)) {
|
588 |
-
// Default
|
589 |
-
$list = array('styles' => array(), 'scripts' => array());
|
590 |
-
|
591 |
-
// Build list
|
592 |
-
if (! empty($loadExceptionsStyles)) {
|
593 |
-
foreach ($loadExceptionsStyles as $postHandle) {
|
594 |
-
$list['styles'][] = $postHandle;
|
595 |
-
}
|
596 |
-
}
|
597 |
-
|
598 |
-
if (! empty($loadExceptionsScripts)) {
|
599 |
-
foreach ($loadExceptionsScripts as $postHandle) {
|
600 |
-
$list['scripts'][] = $postHandle;
|
601 |
-
}
|
602 |
-
}
|
603 |
-
|
604 |
-
if (is_array($list['styles'])) {
|
605 |
-
$list['styles'] = array_unique($list['styles']);
|
606 |
-
}
|
607 |
-
|
608 |
-
if (is_array($list['scripts'])) {
|
609 |
-
$list['scripts'] = array_unique($list['scripts']);
|
610 |
-
}
|
611 |
-
|
612 |
-
$jsonLoadExceptions = json_encode($list);
|
613 |
-
|
614 |
-
if ($type == 'post') {
|
615 |
-
if (! add_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions, true)) {
|
616 |
-
update_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions);
|
617 |
-
}
|
618 |
-
} elseif ($type == 'front_page') {
|
619 |
-
update_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions', $jsonLoadExceptions);
|
620 |
-
}
|
621 |
-
}
|
622 |
-
}
|
623 |
-
|
624 |
-
/**
|
625 |
-
*
|
626 |
-
*/
|
627 |
-
public function saveToGlobalUnload()
|
628 |
-
{
|
629 |
-
$postStyles = (isset($_POST['wpacu_global_unload_styles']) && is_array($_POST['wpacu_global_unload_styles']))
|
630 |
-
? $_POST['wpacu_global_unload_styles'] : array();
|
631 |
-
|
632 |
-
$postScripts = (isset($_POST['wpacu_global_unload_scripts']) && is_array($_POST['wpacu_global_unload_scripts']))
|
633 |
-
? $_POST['wpacu_global_unload_scripts'] : array();
|
634 |
-
|
635 |
-
// Is there any entry already in JSON format?
|
636 |
-
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_global_unload');
|
637 |
-
|
638 |
-
// Default list as array
|
639 |
-
$existingListEmpty = array('styles' => array(), 'scripts' => array());
|
640 |
-
|
641 |
-
if (! $existingListJson) {
|
642 |
-
$existingList = $existingListEmpty;
|
643 |
-
} else {
|
644 |
-
$existingList = json_decode($existingListJson, true);
|
645 |
-
|
646 |
-
if (json_last_error() != JSON_ERROR_NONE) {
|
647 |
-
$existingList = $existingListEmpty;
|
648 |
-
}
|
649 |
-
}
|
650 |
-
|
651 |
-
// Append to the list anything from the POST (if any)
|
652 |
-
if (! empty($postStyles)) {
|
653 |
-
foreach ($postStyles as $postStyleHandle) {
|
654 |
-
$existingList['styles'][] = $postStyleHandle;
|
655 |
-
}
|
656 |
-
}
|
657 |
-
|
658 |
-
if (! empty($postScripts)) {
|
659 |
-
foreach ($postScripts as $postScriptHandle) {
|
660 |
-
$existingList['scripts'][] = $postScriptHandle;
|
661 |
-
}
|
662 |
-
}
|
663 |
-
|
664 |
-
// Make sure all entries are unique (no handle duplicates)
|
665 |
-
$existingList['styles'] = array_unique($existingList['styles']);
|
666 |
-
$existingList['scripts'] = array_unique($existingList['scripts']);
|
667 |
-
|
668 |
-
update_option(
|
669 |
-
WPACU_PLUGIN_NAME.'_global_unload',
|
670 |
-
json_encode($existingList)
|
671 |
-
);
|
672 |
-
}
|
673 |
-
|
674 |
/**
|
675 |
* @return array
|
676 |
*/
|
@@ -694,61 +471,38 @@ class Main
|
|
694 |
}
|
695 |
|
696 |
/**
|
697 |
-
*
|
|
|
698 |
*/
|
699 |
-
public function
|
700 |
{
|
701 |
-
$
|
702 |
-
$scriptsList = isset($_POST['wpacu_options_scripts']) ? $_POST['wpacu_options_scripts'] : array();
|
703 |
|
704 |
-
$
|
705 |
|
706 |
-
if (!
|
707 |
-
|
708 |
-
if ($value == 'remove') {
|
709 |
-
$removeStylesList[] = $handle;
|
710 |
-
}
|
711 |
-
}
|
712 |
-
}
|
713 |
-
|
714 |
-
if (! empty($scriptsList)) {
|
715 |
-
foreach ($scriptsList as $handle => $value) {
|
716 |
-
if ($value == 'remove') {
|
717 |
-
$removeScriptsList[] = $handle;
|
718 |
-
}
|
719 |
-
}
|
720 |
}
|
721 |
|
722 |
-
$
|
723 |
|
724 |
-
if (
|
725 |
-
return;
|
726 |
}
|
727 |
|
728 |
-
$existingList =
|
729 |
|
730 |
-
if (
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
unset($existingList['styles'][$handleKey]);
|
735 |
-
}
|
736 |
-
}
|
737 |
-
}
|
738 |
-
|
739 |
-
if (! empty($removeScriptsList)) {
|
740 |
-
foreach ($existingList['scripts'] as $handleKey => $handle) {
|
741 |
-
if (in_array($handle, $removeScriptsList)) {
|
742 |
-
unset($existingList['scripts'][$handleKey]);
|
743 |
-
}
|
744 |
-
}
|
745 |
-
}
|
746 |
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
);
|
751 |
}
|
|
|
|
|
752 |
}
|
753 |
|
754 |
/**
|
@@ -815,10 +569,27 @@ class Main
|
|
815 |
}
|
816 |
}
|
817 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
818 |
/*
|
819 |
* Style List
|
820 |
*/
|
821 |
if (! empty($wp_styles)) {
|
|
|
|
|
822 |
$skipStyles = array(
|
823 |
'admin-bar',
|
824 |
WPACU_PLUGIN_NAME . '-icheck-square-red',
|
@@ -841,7 +612,7 @@ class Main
|
|
841 |
}
|
842 |
}
|
843 |
|
844 |
-
//
|
845 |
if (! empty($currentUnloadedAll['styles']) && !empty($stylesBeforeUnload)) {
|
846 |
foreach ($currentUnloadedAll['styles'] as $sbuHandle) {
|
847 |
if (!in_array($sbuHandle, $wp_styles->done)) {
|
@@ -866,6 +637,8 @@ class Main
|
|
866 |
* Scripts List
|
867 |
*/
|
868 |
if (! empty($wp_scripts)) {
|
|
|
|
|
869 |
$skipScripts = array(
|
870 |
'admin-bar',
|
871 |
WPACU_PLUGIN_NAME . '-icheck',
|
@@ -888,7 +661,7 @@ class Main
|
|
888 |
}
|
889 |
}
|
890 |
|
891 |
-
//
|
892 |
if (! empty($currentUnloadedAll['scripts']) && !empty($scriptsBeforeUnload)) {
|
893 |
foreach ($currentUnloadedAll['scripts'] as $sbuHandle) {
|
894 |
if (!in_array($sbuHandle, $wp_scripts->done)) {
|
@@ -918,13 +691,12 @@ class Main
|
|
918 |
$data['all']['scripts'] = $list['scripts'];
|
919 |
$data['all']['styles'] = $list['styles'];
|
920 |
|
921 |
-
$this->fetchUrl = (
|
922 |
-
? get_option('siteurl') : $this->getPostUrl($post->ID);
|
923 |
|
924 |
$data['fetch_url'] = $this->fetchUrl;
|
925 |
|
926 |
-
$data['nonce_name'] =
|
927 |
-
$data['nonce_action'] =
|
928 |
|
929 |
$data = $this->alterAssetObj($data);
|
930 |
|
@@ -935,6 +707,15 @@ class Main
|
|
935 |
|
936 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
937 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
$this->parseTemplate('settings-frontend', $data, true);
|
939 |
} elseif ($isDashboardView) {
|
940 |
// AJAX call from the WordPress Dashboard
|
@@ -972,169 +753,6 @@ class Main
|
|
972 |
return $result;
|
973 |
}
|
974 |
|
975 |
-
/**
|
976 |
-
*
|
977 |
-
*/
|
978 |
-
public function stylesAndScriptsForAdmin()
|
979 |
-
{
|
980 |
-
global $post;
|
981 |
-
|
982 |
-
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
983 |
-
$getPostId = (isset($_GET['post'])) ? (int)$_GET['post'] : '';
|
984 |
-
|
985 |
-
$homepageClass = new HomePage;
|
986 |
-
|
987 |
-
if (isset($post->ID)) {
|
988 |
-
$this->loadPluginAssets = true;
|
989 |
-
}
|
990 |
-
|
991 |
-
if ($getPostId > 0) {
|
992 |
-
$this->loadPluginAssets = true;
|
993 |
-
}
|
994 |
-
|
995 |
-
if ($page == WPACU_PLUGIN_NAME.'_home_page'
|
996 |
-
&& $homepageClass->data['show_on_front'] === 'posts'
|
997 |
-
) {
|
998 |
-
$this->loadPluginAssets = true;
|
999 |
-
}
|
1000 |
-
|
1001 |
-
if (! $this->loadPluginAssets) {
|
1002 |
-
return;
|
1003 |
-
}
|
1004 |
-
|
1005 |
-
$this->enqueueAdminStyles();
|
1006 |
-
$this->enqueueAdminScripts();
|
1007 |
-
}
|
1008 |
-
|
1009 |
-
/**
|
1010 |
-
*
|
1011 |
-
*/
|
1012 |
-
public function stylesAndScriptsForPublic()
|
1013 |
-
{
|
1014 |
-
$this->enqueuePublicStyles();
|
1015 |
-
$this->enqueuePublicScripts();
|
1016 |
-
}
|
1017 |
-
|
1018 |
-
/**
|
1019 |
-
*
|
1020 |
-
*/
|
1021 |
-
private function enqueueAdminStyles()
|
1022 |
-
{
|
1023 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.css', WPACU_PLUGIN_FILE));
|
1024 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
1025 |
-
}
|
1026 |
-
|
1027 |
-
/**
|
1028 |
-
*
|
1029 |
-
*/
|
1030 |
-
private function enqueueAdminScripts()
|
1031 |
-
{
|
1032 |
-
global $post, $pagenow;
|
1033 |
-
|
1034 |
-
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
1035 |
-
|
1036 |
-
$getPostId = (isset($_GET['post'])
|
1037 |
-
&& isset($_GET['action'])
|
1038 |
-
&& $_GET['action'] === 'edit'
|
1039 |
-
&& $pagenow == 'post.php')
|
1040 |
-
? (int)$_GET['post'] : '';
|
1041 |
-
|
1042 |
-
$postId = (isset($post->ID)) ? $post->ID : 0;
|
1043 |
-
|
1044 |
-
if ($getPostId > 0 && $getPostId != $postId) {
|
1045 |
-
$postId = $getPostId;
|
1046 |
-
}
|
1047 |
-
|
1048 |
-
if ($page == WPACU_PLUGIN_NAME.'_home_page' || $postId < 1) {
|
1049 |
-
$postId = 0; // for home page
|
1050 |
-
}
|
1051 |
-
|
1052 |
-
// Not home page (posts list)? See if the individual post is published to continue
|
1053 |
-
if ($postId > 0) {
|
1054 |
-
$postStatus = get_post_status($postId);
|
1055 |
-
|
1056 |
-
if (! $postStatus) {
|
1057 |
-
return;
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
// Only for Published Posts
|
1061 |
-
if ($postStatus != 'publish') {
|
1062 |
-
return;
|
1063 |
-
}
|
1064 |
-
}
|
1065 |
-
|
1066 |
-
wp_register_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
1067 |
-
|
1068 |
-
// It can also be the front page URL
|
1069 |
-
$postUrl = $this->getPostUrl($postId);
|
1070 |
-
|
1071 |
-
$this->fetchUrl = $postUrl;
|
1072 |
-
|
1073 |
-
wp_localize_script(
|
1074 |
-
WPACU_PLUGIN_NAME . '-script',
|
1075 |
-
'wpacu_object',
|
1076 |
-
array(
|
1077 |
-
'plugin_name' => WPACU_PLUGIN_NAME,
|
1078 |
-
'ajax_url' => admin_url('admin-ajax.php'),
|
1079 |
-
'post_id' => $postId,
|
1080 |
-
'post_url' => $postUrl
|
1081 |
-
)
|
1082 |
-
);
|
1083 |
-
|
1084 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
1085 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script');
|
1086 |
-
}
|
1087 |
-
|
1088 |
-
/**
|
1089 |
-
*
|
1090 |
-
*/
|
1091 |
-
private function enqueuePublicStyles()
|
1092 |
-
{
|
1093 |
-
if ($this->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
1094 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.css', WPACU_PLUGIN_FILE));
|
1095 |
-
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
1096 |
-
}
|
1097 |
-
}
|
1098 |
-
|
1099 |
-
/**
|
1100 |
-
*
|
1101 |
-
*/
|
1102 |
-
public function enqueuePublicScripts()
|
1103 |
-
{
|
1104 |
-
if ($this->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
1105 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
1106 |
-
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
1107 |
-
}
|
1108 |
-
}
|
1109 |
-
|
1110 |
-
/**
|
1111 |
-
* @param $postId
|
1112 |
-
* @return false|mixed|string|void
|
1113 |
-
*/
|
1114 |
-
public function getPostUrl($postId)
|
1115 |
-
{
|
1116 |
-
if ($postId > 0) {
|
1117 |
-
$postUrl = get_permalink($postId);
|
1118 |
-
} else {
|
1119 |
-
$postUrl = get_option('siteurl');
|
1120 |
-
|
1121 |
-
if (substr($postUrl, -1) != '/') {
|
1122 |
-
$postUrl .= '/';
|
1123 |
-
}
|
1124 |
-
}
|
1125 |
-
|
1126 |
-
// If we are in the Dashboard on a HTTPS connection,
|
1127 |
-
// then we will make the AJAX call over HTTPS as well for the front-end
|
1128 |
-
// to avoid blocking
|
1129 |
-
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off');
|
1130 |
-
|
1131 |
-
if ($https && strpos($postUrl, 'http://') === 0) {
|
1132 |
-
$postUrl = str_ireplace('http://', 'https://', $postUrl);
|
1133 |
-
}
|
1134 |
-
|
1135 |
-
return $postUrl;
|
1136 |
-
}
|
1137 |
-
|
1138 |
/**
|
1139 |
*
|
1140 |
*/
|
@@ -1145,7 +763,7 @@ class Main
|
|
1145 |
$postUrl = isset($_POST['post_url']) ? $_POST['post_url'] : '';
|
1146 |
|
1147 |
$json = base64_decode(
|
1148 |
-
|
1149 |
$contents,
|
1150 |
self::STARTDEL,
|
1151 |
self::ENDDEL
|
@@ -1174,6 +792,18 @@ class Main
|
|
1174 |
$data['fetch_url'] = $postUrl;
|
1175 |
$data['global_unload'] = $this->getGlobalUnload();
|
1176 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1177 |
$type = ($postId == 0) ? 'front_page' : 'post';
|
1178 |
|
1179 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
@@ -1237,8 +867,8 @@ class Main
|
|
1237 |
$data['core_scripts_loaded'] = false;
|
1238 |
|
1239 |
if (isset($data['contents'])) {
|
1240 |
-
$headPart =
|
1241 |
-
$bodyPart =
|
1242 |
}
|
1243 |
|
1244 |
foreach ($data['all']['scripts'] as $key => $obj) {
|
@@ -1311,8 +941,8 @@ class Main
|
|
1311 |
}
|
1312 |
|
1313 |
/**
|
1314 |
-
* @param
|
1315 |
-
* @return array|mixed|void
|
1316 |
*/
|
1317 |
public function getAssetsUnloaded($postId = 0)
|
1318 |
{
|
@@ -1336,27 +966,4 @@ class Main
|
|
1336 |
|
1337 |
return $this->assetsRemoved;
|
1338 |
}
|
1339 |
-
|
1340 |
-
/**
|
1341 |
-
* @param $string
|
1342 |
-
* @param $start
|
1343 |
-
* @param $end
|
1344 |
-
* @return string
|
1345 |
-
*/
|
1346 |
-
public function extractBetween($string, $start, $end)
|
1347 |
-
{
|
1348 |
-
$pos = stripos($string, $start);
|
1349 |
-
|
1350 |
-
$str = substr($string, $pos);
|
1351 |
-
|
1352 |
-
$strTwo = substr($str, strlen($start));
|
1353 |
-
|
1354 |
-
$secondPos = stripos($strTwo, $end);
|
1355 |
-
|
1356 |
-
$strThree = substr($strTwo, 0, $secondPos);
|
1357 |
-
|
1358 |
-
$unit = trim($strThree); // remove whitespaces
|
1359 |
-
|
1360 |
-
return $unit;
|
1361 |
-
}
|
1362 |
}
|
11 |
*
|
12 |
*/
|
13 |
const STARTDEL = '@ BEGIN WPACU PLUGIN JSON @';
|
|
|
|
|
|
|
|
|
14 |
|
15 |
/**
|
16 |
*
|
17 |
*/
|
18 |
+
const ENDDEL = '@ END WPACU PLUGIN JSON @';
|
|
|
|
|
|
|
|
|
19 |
|
20 |
/**
|
21 |
* @var array
|
22 |
*/
|
23 |
public $assetsRemoved = array();
|
24 |
|
|
|
|
|
|
|
|
|
|
|
25 |
/**
|
26 |
* @var array
|
27 |
*/
|
51 |
* @var array
|
52 |
*/
|
53 |
public $wpScripts = array();
|
54 |
+
|
55 |
/**
|
56 |
* @var array
|
57 |
*/
|
58 |
public $wpStyles = array();
|
59 |
|
60 |
+
/**
|
61 |
+
* @var array
|
62 |
+
*/
|
63 |
+
public $postTypesUnloaded = array();
|
64 |
+
|
65 |
/**
|
66 |
* @var Main|null
|
67 |
*/
|
87 |
$this->frontendShow = (get_option(WPACU_PLUGIN_NAME.'_frontend_show'));
|
88 |
|
89 |
// Early Triggers
|
|
|
90 |
add_action('wp', array($this, 'setVars'), 2);
|
91 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
// Fetch the page in the background to see what scripts/styles are already loading
|
93 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load']) || $this->frontendShow) {
|
94 |
if (isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
139 |
|
140 |
$type = (is_front_page()) ? 'front_page' : 'post';
|
141 |
|
142 |
+
if (is_singular()) {
|
143 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
144 |
+
}
|
145 |
+
|
146 |
$this->loadExceptions = $this->getLoadExceptions($type, $postId);
|
147 |
}
|
148 |
}
|
157 |
if ($obj->public > 0) {
|
158 |
add_meta_box(
|
159 |
WPACU_PLUGIN_NAME.'_asset_list',
|
160 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
161 |
array($this, 'renderMetaBoxContent'),
|
162 |
$postType,
|
163 |
'advanced',
|
194 |
|
195 |
$data['get_assets'] = $getAssets;
|
196 |
|
197 |
+
$data['fetch_url'] = Misc::getPostUrl($postId);
|
198 |
|
199 |
$this->parseTemplate('meta-box', $data, true);
|
200 |
}
|
245 |
}
|
246 |
}
|
247 |
|
248 |
+
if (is_singular()) {
|
249 |
+
// Any bulk unloaded styles (e.g. for all pages belonging to a post type)? Append them
|
250 |
+
if (empty($this->postTypesUnloaded)) {
|
251 |
+
global $post;
|
252 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
253 |
+
}
|
254 |
+
|
255 |
+
if (!empty($this->postTypesUnloaded['scripts'])) {
|
256 |
+
foreach ($this->postTypesUnloaded['scripts'] as $handleStyle) {
|
257 |
+
$list[] = $handleStyle;
|
258 |
+
}
|
259 |
+
}
|
260 |
+
}
|
261 |
+
|
262 |
$list = array_unique($list);
|
263 |
}
|
264 |
|
345 |
}
|
346 |
}
|
347 |
|
348 |
+
if (is_singular()) {
|
349 |
+
// Any bulk unloaded styles (e.g. for all pages belonging to a post type)? Append them
|
350 |
+
if (empty($this->postTypesUnloaded)) {
|
351 |
+
global $post;
|
352 |
+
$this->postTypesUnloaded = $this->getPostTypeUnload($post->post_type);
|
353 |
+
}
|
354 |
+
|
355 |
+
if (!empty($this->postTypesUnloaded['styles'])) {
|
356 |
+
foreach ($this->postTypesUnloaded['styles'] as $handleStyle) {
|
357 |
+
$list[] = $handleStyle;
|
358 |
+
}
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
$list = array_unique($list);
|
363 |
}
|
364 |
|
399 |
}
|
400 |
}
|
401 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
/**
|
403 |
* @param string $type
|
404 |
* @param string $postId
|
448 |
return $exceptionsList;
|
449 |
}
|
450 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
/**
|
452 |
* @return array
|
453 |
*/
|
471 |
}
|
472 |
|
473 |
/**
|
474 |
+
* @param $postType
|
475 |
+
* @return array
|
476 |
*/
|
477 |
+
public function getPostTypeUnload($postType)
|
478 |
{
|
479 |
+
$existingListEmpty = array();
|
|
|
480 |
|
481 |
+
$existingListAllJson = get_option(WPACU_PLUGIN_NAME.'_bulk_unload');
|
482 |
|
483 |
+
if (! $existingListAllJson) {
|
484 |
+
return $existingListEmpty;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
}
|
486 |
|
487 |
+
$existingListAll = json_decode($existingListAllJson, true);
|
488 |
|
489 |
+
if (json_last_error() != JSON_ERROR_NONE) {
|
490 |
+
return $existingListEmpty;
|
491 |
}
|
492 |
|
493 |
+
$existingList = array();
|
494 |
|
495 |
+
if (isset($existingListAll['styles']['post_type'][$postType])
|
496 |
+
&& is_array($existingListAll['styles']['post_type'][$postType])) {
|
497 |
+
$existingList['styles'] = $existingListAll['styles']['post_type'][$postType];
|
498 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
|
500 |
+
if (isset($existingListAll['scripts']['post_type'][$postType])
|
501 |
+
&& is_array($existingListAll['scripts']['post_type'][$postType])) {
|
502 |
+
$existingList['scripts'] = $existingListAll['scripts']['post_type'][$postType];
|
|
|
503 |
}
|
504 |
+
|
505 |
+
return $existingList;
|
506 |
}
|
507 |
|
508 |
/**
|
569 |
}
|
570 |
}
|
571 |
|
572 |
+
// Append bulk unloaded assets to current (one by one) unloaded ones
|
573 |
+
if (is_singular()) {
|
574 |
+
if (! empty($this->postTypesUnloaded['styles'])) {
|
575 |
+
foreach ($this->postTypesUnloaded['styles'] as $postTypeStyle) {
|
576 |
+
$currentUnloadedAll['styles'][] = $postTypeStyle;
|
577 |
+
}
|
578 |
+
}
|
579 |
+
|
580 |
+
if (! empty($this->postTypesUnloaded['scripts'])) {
|
581 |
+
foreach ($this->postTypesUnloaded['scripts'] as $postTypeScript) {
|
582 |
+
$currentUnloadedAll['scripts'][] = $postTypeScript;
|
583 |
+
}
|
584 |
+
}
|
585 |
+
}
|
586 |
+
|
587 |
/*
|
588 |
* Style List
|
589 |
*/
|
590 |
if (! empty($wp_styles)) {
|
591 |
+
/* These styles below are used by this plugin (except admin-bar) and they should not show in the list
|
592 |
+
as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
|
593 |
$skipStyles = array(
|
594 |
'admin-bar',
|
595 |
WPACU_PLUGIN_NAME . '-icheck-square-red',
|
612 |
}
|
613 |
}
|
614 |
|
615 |
+
// Append unloaded ones (if any)
|
616 |
if (! empty($currentUnloadedAll['styles']) && !empty($stylesBeforeUnload)) {
|
617 |
foreach ($currentUnloadedAll['styles'] as $sbuHandle) {
|
618 |
if (!in_array($sbuHandle, $wp_styles->done)) {
|
637 |
* Scripts List
|
638 |
*/
|
639 |
if (! empty($wp_scripts)) {
|
640 |
+
/* These scripts below are used by this plugin (except admin-bar) and they should not show in the list
|
641 |
+
as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
|
642 |
$skipScripts = array(
|
643 |
'admin-bar',
|
644 |
WPACU_PLUGIN_NAME . '-icheck',
|
661 |
}
|
662 |
}
|
663 |
|
664 |
+
// Append unloaded ones (if any)
|
665 |
if (! empty($currentUnloadedAll['scripts']) && !empty($scriptsBeforeUnload)) {
|
666 |
foreach ($currentUnloadedAll['scripts'] as $sbuHandle) {
|
667 |
if (!in_array($sbuHandle, $wp_scripts->done)) {
|
691 |
$data['all']['scripts'] = $list['scripts'];
|
692 |
$data['all']['styles'] = $list['styles'];
|
693 |
|
694 |
+
$this->fetchUrl = Misc::getPostUrl($post->ID);
|
|
|
695 |
|
696 |
$data['fetch_url'] = $this->fetchUrl;
|
697 |
|
698 |
+
$data['nonce_name'] = Update::NONCE_FIELD_NAME;
|
699 |
+
$data['nonce_action'] = Update::NONCE_ACTION_NAME;
|
700 |
|
701 |
$data = $this->alterAssetObj($data);
|
702 |
|
707 |
|
708 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
709 |
|
710 |
+
if (is_singular()) {
|
711 |
+
// Current Post Type
|
712 |
+
$data['post_type'] = $post->post_type;
|
713 |
+
|
714 |
+
// Are there any assets unloaded for this specific post type?
|
715 |
+
// (e.g. page, post, product (from WooCommerce) or other custom post type)
|
716 |
+
$data['post_type_unloaded'] = $this->getPostTypeUnload($data['post_type']);
|
717 |
+
}
|
718 |
+
|
719 |
$this->parseTemplate('settings-frontend', $data, true);
|
720 |
} elseif ($isDashboardView) {
|
721 |
// AJAX call from the WordPress Dashboard
|
753 |
return $result;
|
754 |
}
|
755 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
756 |
/**
|
757 |
*
|
758 |
*/
|
763 |
$postUrl = isset($_POST['post_url']) ? $_POST['post_url'] : '';
|
764 |
|
765 |
$json = base64_decode(
|
766 |
+
Misc::extractBetween(
|
767 |
$contents,
|
768 |
self::STARTDEL,
|
769 |
self::ENDDEL
|
792 |
$data['fetch_url'] = $postUrl;
|
793 |
$data['global_unload'] = $this->getGlobalUnload();
|
794 |
|
795 |
+
// Post Information
|
796 |
+
$postData = get_post($postId);
|
797 |
+
|
798 |
+
// Current Post Type
|
799 |
+
$data['post_type'] = $postData->post_type;
|
800 |
+
|
801 |
+
// Are there any assets unloaded for this specific post type?
|
802 |
+
// (e.g. page, post, product (from WooCommerce) or other custom post type)
|
803 |
+
$data['post_type_unloaded'] = $this->getPostTypeUnload($data['post_type']);
|
804 |
+
|
805 |
+
//echo '<pre>'; print_r($data['post_type_unloaded']);
|
806 |
+
|
807 |
$type = ($postId == 0) ? 'front_page' : 'post';
|
808 |
|
809 |
$data['load_exceptions'] = $this->getLoadExceptions($type, $postId);
|
867 |
$data['core_scripts_loaded'] = false;
|
868 |
|
869 |
if (isset($data['contents'])) {
|
870 |
+
$headPart = Misc::extractBetween($data['contents'], '<head', '</head>');
|
871 |
+
$bodyPart = Misc::extractBetween($data['contents'], '<body', '</body>');
|
872 |
}
|
873 |
|
874 |
foreach ($data['all']['scripts'] as $key => $obj) {
|
941 |
}
|
942 |
|
943 |
/**
|
944 |
+
* @param int $postId
|
945 |
+
* @return array|mixed|string|void
|
946 |
*/
|
947 |
public function getAssetsUnloaded($postId = 0)
|
948 |
{
|
966 |
|
967 |
return $this->assetsRemoved;
|
968 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
969 |
}
|
classes/Menu.php
CHANGED
@@ -24,8 +24,8 @@ class Menu
|
|
24 |
$capability = 'manage_options';
|
25 |
|
26 |
add_menu_page(
|
27 |
-
__('WP Asset
|
28 |
-
__('WP Asset
|
29 |
$capability,
|
30 |
$menuSlug,
|
31 |
array('\WpAssetCleanUp\Settings', 'settingsPage'),
|
@@ -41,6 +41,16 @@ class Menu
|
|
41 |
array(new HomePage, 'page')
|
42 |
);
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
$GLOBALS['submenu'][$menuSlug][0][0] = esc_attr__('Settings', WPACU_PLUGIN_NAME);
|
45 |
}
|
46 |
}
|
24 |
$capability = 'manage_options';
|
25 |
|
26 |
add_menu_page(
|
27 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
28 |
+
__('WP Asset CleanUp', WPACU_PLUGIN_NAME),
|
29 |
$capability,
|
30 |
$menuSlug,
|
31 |
array('\WpAssetCleanUp\Settings', 'settingsPage'),
|
41 |
array(new HomePage, 'page')
|
42 |
);
|
43 |
|
44 |
+
add_submenu_page(
|
45 |
+
$menuSlug,
|
46 |
+
__('Global Rules', WPACU_PLUGIN_NAME),
|
47 |
+
__('Global Rules', WPACU_PLUGIN_NAME),
|
48 |
+
$capability,
|
49 |
+
WPACU_PLUGIN_NAME.'_globals',
|
50 |
+
array(new GlobalRules, 'page')
|
51 |
+
);
|
52 |
+
|
53 |
+
// Rename first item from the menu which has the same title as the menu page
|
54 |
$GLOBALS['submenu'][$menuSlug][0][0] = esc_attr__('Settings', WPACU_PLUGIN_NAME);
|
55 |
}
|
56 |
}
|
classes/Misc.php
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Misc
|
6 |
+
* contains various common functions that are used by the plugin
|
7 |
+
* @package WpAssetCleanUp
|
8 |
+
*/
|
9 |
+
class Misc
|
10 |
+
{
|
11 |
+
/**
|
12 |
+
* @param $string
|
13 |
+
* @param $start
|
14 |
+
* @param $end
|
15 |
+
* @return string
|
16 |
+
*/
|
17 |
+
public static function extractBetween($string, $start, $end)
|
18 |
+
{
|
19 |
+
$pos = stripos($string, $start);
|
20 |
+
|
21 |
+
$str = substr($string, $pos);
|
22 |
+
|
23 |
+
$strTwo = substr($str, strlen($start));
|
24 |
+
|
25 |
+
$secondPos = stripos($strTwo, $end);
|
26 |
+
|
27 |
+
$strThree = substr($strTwo, 0, $secondPos);
|
28 |
+
|
29 |
+
$unit = trim($strThree); // remove whitespaces
|
30 |
+
|
31 |
+
return $unit;
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @return string
|
36 |
+
*/
|
37 |
+
public static function isHttpsSecure()
|
38 |
+
{
|
39 |
+
$isSecure = false;
|
40 |
+
|
41 |
+
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
|
42 |
+
$isSecure = true;
|
43 |
+
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'
|
44 |
+
|| !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') {
|
45 |
+
// Is it behind a load balancer?
|
46 |
+
$isSecure = true;
|
47 |
+
}
|
48 |
+
|
49 |
+
return $isSecure;
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param $postId
|
54 |
+
* @return false|mixed|string|void
|
55 |
+
*/
|
56 |
+
public static function getPostUrl($postId)
|
57 |
+
{
|
58 |
+
if (is_front_page()) {
|
59 |
+
return get_option('siteurl');
|
60 |
+
}
|
61 |
+
|
62 |
+
if ($postId > 0) {
|
63 |
+
$postUrl = get_permalink($postId);
|
64 |
+
} else {
|
65 |
+
$postUrl = get_option('siteurl');
|
66 |
+
|
67 |
+
if (substr($postUrl, -1) != '/') {
|
68 |
+
$postUrl .= '/';
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
// If we are in the Dashboard on a HTTPS connection,
|
73 |
+
// then we will make the AJAX call over HTTPS as well for the front-end
|
74 |
+
// to avoid blocking
|
75 |
+
$https = Misc::isHttpsSecure();
|
76 |
+
|
77 |
+
if ($https && strpos($postUrl, 'http://') === 0) {
|
78 |
+
$postUrl = str_ireplace('http://', 'https://', $postUrl);
|
79 |
+
}
|
80 |
+
|
81 |
+
return $postUrl;
|
82 |
+
}
|
83 |
+
}
|
classes/OwnAssets.php
ADDED
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class OwnAssets
|
6 |
+
*
|
7 |
+
* These are plugin's own assets and they are used only when you're logged and do not show in the list for unload
|
8 |
+
*
|
9 |
+
* @package WpAssetCleanUp
|
10 |
+
*/
|
11 |
+
class OwnAssets
|
12 |
+
{
|
13 |
+
/**
|
14 |
+
* @var bool
|
15 |
+
*/
|
16 |
+
public $loadPluginAssets = false; // default
|
17 |
+
|
18 |
+
/**
|
19 |
+
* OwnAssets constructor.
|
20 |
+
*/
|
21 |
+
public function __construct()
|
22 |
+
{
|
23 |
+
add_action('admin_enqueue_scripts', array($this, 'stylesAndScriptsForAdmin'));
|
24 |
+
add_action('wp_enqueue_scripts', array($this, 'stylesAndScriptsForPublic'));
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
*
|
29 |
+
*/
|
30 |
+
public function stylesAndScriptsForAdmin()
|
31 |
+
{
|
32 |
+
global $post;
|
33 |
+
|
34 |
+
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
35 |
+
$getPostId = (isset($_GET['post'])) ? (int)$_GET['post'] : '';
|
36 |
+
|
37 |
+
// Only load the plugin's assets when they are needed
|
38 |
+
// This an example of assets that are correctly loaded in WordPress
|
39 |
+
if (isset($post->ID)) {
|
40 |
+
$this->loadPluginAssets = true;
|
41 |
+
}
|
42 |
+
|
43 |
+
if ($getPostId > 0) {
|
44 |
+
$this->loadPluginAssets = true;
|
45 |
+
}
|
46 |
+
|
47 |
+
if (in_array($page, array(WPACU_PLUGIN_NAME.'_home_page', WPACU_PLUGIN_NAME.'_globals'))) {
|
48 |
+
$this->loadPluginAssets = true;
|
49 |
+
}
|
50 |
+
|
51 |
+
if (! $this->loadPluginAssets) {
|
52 |
+
return;
|
53 |
+
}
|
54 |
+
|
55 |
+
$this->enqueueAdminStyles();
|
56 |
+
$this->enqueueAdminScripts();
|
57 |
+
}
|
58 |
+
|
59 |
+
|
60 |
+
/**
|
61 |
+
*
|
62 |
+
*/
|
63 |
+
public function stylesAndScriptsForPublic()
|
64 |
+
{
|
65 |
+
$this->enqueuePublicStyles();
|
66 |
+
$this->enqueuePublicScripts();
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
*
|
71 |
+
*/
|
72 |
+
private function enqueueAdminStyles()
|
73 |
+
{
|
74 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.min.css', WPACU_PLUGIN_FILE));
|
75 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
*
|
80 |
+
*/
|
81 |
+
private function enqueueAdminScripts()
|
82 |
+
{
|
83 |
+
global $post, $pagenow;
|
84 |
+
|
85 |
+
$page = (isset($_GET['page'])) ? $_GET['page'] : '';
|
86 |
+
|
87 |
+
$getPostId = (isset($_GET['post'])
|
88 |
+
&& isset($_GET['action'])
|
89 |
+
&& $_GET['action'] === 'edit'
|
90 |
+
&& $pagenow == 'post.php')
|
91 |
+
? (int)$_GET['post'] : '';
|
92 |
+
|
93 |
+
$postId = (isset($post->ID)) ? $post->ID : 0;
|
94 |
+
|
95 |
+
if ($getPostId > 0 && $getPostId != $postId) {
|
96 |
+
$postId = $getPostId;
|
97 |
+
}
|
98 |
+
|
99 |
+
if ($page == WPACU_PLUGIN_NAME.'_home_page' || $postId < 1) {
|
100 |
+
$postId = 0; // for home page
|
101 |
+
}
|
102 |
+
|
103 |
+
// Not home page (posts list)? See if the individual post is published to continue
|
104 |
+
if ($postId > 0) {
|
105 |
+
$postStatus = get_post_status($postId);
|
106 |
+
|
107 |
+
if (! $postStatus) {
|
108 |
+
return;
|
109 |
+
}
|
110 |
+
|
111 |
+
// Only for Published Posts
|
112 |
+
if ($postStatus != 'publish') {
|
113 |
+
return;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
wp_register_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.min.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
118 |
+
|
119 |
+
// It can also be the front page URL
|
120 |
+
$postUrl = Misc::getPostUrl($postId);
|
121 |
+
|
122 |
+
$this->fetchUrl = $postUrl;
|
123 |
+
|
124 |
+
wp_localize_script(
|
125 |
+
WPACU_PLUGIN_NAME . '-script',
|
126 |
+
'wpacu_object',
|
127 |
+
array(
|
128 |
+
'plugin_name' => WPACU_PLUGIN_NAME,
|
129 |
+
'ajax_url' => admin_url('admin-ajax.php'),
|
130 |
+
'post_id' => $postId,
|
131 |
+
'post_url' => $postUrl
|
132 |
+
)
|
133 |
+
);
|
134 |
+
|
135 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
136 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script');
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
*
|
141 |
+
*/
|
142 |
+
private function enqueuePublicStyles()
|
143 |
+
{
|
144 |
+
if (Main::instance()->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
145 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-style', plugins_url('/assets/style.min.css', WPACU_PLUGIN_FILE));
|
146 |
+
wp_enqueue_style(WPACU_PLUGIN_NAME . '-icheck-square-red', plugins_url('/assets/icheck/skins/square/red.css', WPACU_PLUGIN_FILE));
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
*
|
152 |
+
*/
|
153 |
+
public function enqueuePublicScripts()
|
154 |
+
{
|
155 |
+
if (Main::instance()->frontendShow && current_user_can('manage_options') && !isset($_POST[WPACU_PLUGIN_NAME.'_load'])) {
|
156 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-icheck', plugins_url('/assets/icheck/icheck.min.js', WPACU_PLUGIN_FILE), array('jquery'));
|
157 |
+
wp_enqueue_script(WPACU_PLUGIN_NAME . '-script', plugins_url('/assets/script.min.js', WPACU_PLUGIN_FILE), array('jquery'), '1.1');
|
158 |
+
}
|
159 |
+
}
|
160 |
+
}
|
classes/Update.php
ADDED
@@ -0,0 +1,525 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace WpAssetCleanUp;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* Class Update
|
6 |
+
* @package WpAssetCleanUp
|
7 |
+
*/
|
8 |
+
class Update
|
9 |
+
{
|
10 |
+
/**
|
11 |
+
*
|
12 |
+
*/
|
13 |
+
const NONCE_ACTION_NAME = 'wpacu_data_update';
|
14 |
+
/**
|
15 |
+
*
|
16 |
+
*/
|
17 |
+
const NONCE_FIELD_NAME = 'wpacu_data_nonce';
|
18 |
+
|
19 |
+
/**
|
20 |
+
*
|
21 |
+
*/
|
22 |
+
public function init()
|
23 |
+
{
|
24 |
+
if (Main::instance()->frontendShow) {
|
25 |
+
add_action('wp', array($this, 'frontendUpdate'), 1);
|
26 |
+
}
|
27 |
+
|
28 |
+
// After post/page is saved - update your styles/scripts lists
|
29 |
+
add_action('save_post', array($this, 'savePost'));
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
*/
|
35 |
+
public function frontendUpdate()
|
36 |
+
{
|
37 |
+
global $post;
|
38 |
+
|
39 |
+
// Check nonce
|
40 |
+
$nonceName = self::NONCE_FIELD_NAME;
|
41 |
+
$nonceAction = self::NONCE_ACTION_NAME;
|
42 |
+
|
43 |
+
$updateAction = isset($_POST['wpacu_update_asset_frontend']) ?
|
44 |
+
$_POST['wpacu_update_asset_frontend'] : '';
|
45 |
+
|
46 |
+
if (! isset($_POST[$nonceName]) || $updateAction != 1 || ! Main::instance()->frontendShow) {
|
47 |
+
return;
|
48 |
+
}
|
49 |
+
|
50 |
+
// only for admins
|
51 |
+
if (! current_user_can('manage_options')) {
|
52 |
+
return;
|
53 |
+
}
|
54 |
+
|
55 |
+
if (! wp_verify_nonce($_POST[$nonceName], $nonceAction)) {
|
56 |
+
$postUrlAnchor = get_permalink($post->ID).'#wpacu_wrap_assets';
|
57 |
+
wp_die(
|
58 |
+
sprintf(
|
59 |
+
__('The nonce expired or is not correct, thus the request was not processed. %sPlease retry%s.', WPACU_PLUGIN_NAME),
|
60 |
+
'<a href="'.$postUrlAnchor.'">',
|
61 |
+
'</a>'
|
62 |
+
),
|
63 |
+
__('Nonce Expired', WPACU_PLUGIN_NAME)
|
64 |
+
);
|
65 |
+
}
|
66 |
+
|
67 |
+
if (is_front_page()) {
|
68 |
+
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
69 |
+
? $_POST[WPACU_PLUGIN_NAME] : array();
|
70 |
+
|
71 |
+
$this->updateFrontPage($wpacuNoLoadAssets);
|
72 |
+
} else {
|
73 |
+
$this->savePost($post->ID, $post);
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* Save post metadata when a post is saved.
|
79 |
+
*
|
80 |
+
* @param $postId
|
81 |
+
* @param array $post
|
82 |
+
*/
|
83 |
+
public function savePost($postId, $post = array())
|
84 |
+
{
|
85 |
+
if (empty($post)) {
|
86 |
+
global $post;
|
87 |
+
}
|
88 |
+
|
89 |
+
if (! isset($post->ID)) {
|
90 |
+
return;
|
91 |
+
}
|
92 |
+
|
93 |
+
// Has to be a public post type
|
94 |
+
$obj = get_post_type_object($post->post_type);
|
95 |
+
|
96 |
+
if ($obj->public < 1) {
|
97 |
+
return;
|
98 |
+
}
|
99 |
+
|
100 |
+
// only for admins
|
101 |
+
if (! current_user_can('manage_options')) {
|
102 |
+
return;
|
103 |
+
}
|
104 |
+
|
105 |
+
$wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
|
106 |
+
? $_POST[WPACU_PLUGIN_NAME] : array();
|
107 |
+
|
108 |
+
if (is_array($wpacuNoLoadAssets)) {
|
109 |
+
global $wpdb;
|
110 |
+
|
111 |
+
$noUpdate = false;
|
112 |
+
|
113 |
+
// Is the list empty?
|
114 |
+
if (empty($wpacuNoLoadAssets)) {
|
115 |
+
// Remove any row with no results
|
116 |
+
$wpdb->delete(
|
117 |
+
$wpdb->postmeta,
|
118 |
+
array('post_id' => $postId, 'meta_key' => '_' . WPACU_PLUGIN_NAME . '_no_load')
|
119 |
+
);
|
120 |
+
$noUpdate = true;
|
121 |
+
}
|
122 |
+
|
123 |
+
if (! $noUpdate) {
|
124 |
+
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
|
125 |
+
|
126 |
+
if (! add_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_no_load', $jsonNoAssetsLoadList, true)) {
|
127 |
+
update_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_no_load', $jsonNoAssetsLoadList);
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
// If globally disabled, make exception to load for submitted assets
|
133 |
+
$this->saveLoadExceptions('post', $postId);
|
134 |
+
|
135 |
+
// Any global (all pages / everywhere) unloads or removed?
|
136 |
+
$this->saveToEverywhereUnloads();
|
137 |
+
$this->removeEverywhereUnloads();
|
138 |
+
|
139 |
+
// Any bulk unloads or removed? (e.g. all pages of a certain post type)
|
140 |
+
$this->saveToBulkUnloads();
|
141 |
+
$this->removeBulkUnloads();
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @param $wpacuNoLoadAssets
|
146 |
+
*/
|
147 |
+
public function updateFrontPage($wpacuNoLoadAssets)
|
148 |
+
{
|
149 |
+
if (! is_array($wpacuNoLoadAssets)) {
|
150 |
+
return; // only arrays (empty or not) should be used
|
151 |
+
}
|
152 |
+
|
153 |
+
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
|
154 |
+
|
155 |
+
if (! update_option(WPACU_PLUGIN_NAME . '_front_page_no_load', $jsonNoAssetsLoadList)) {
|
156 |
+
add_option(WPACU_PLUGIN_NAME . '_front_page_no_load', $jsonNoAssetsLoadList);
|
157 |
+
}
|
158 |
+
|
159 |
+
// If globally disabled, make exception to load for submitted assets
|
160 |
+
$this->saveLoadExceptions('front_page');
|
161 |
+
|
162 |
+
// Any global unloads or removed?
|
163 |
+
$this->saveToEverywhereUnloads();
|
164 |
+
$this->removeEverywhereUnloads();
|
165 |
+
}
|
166 |
+
|
167 |
+
/**
|
168 |
+
* @param string $type
|
169 |
+
* @param string $postId
|
170 |
+
* @return bool|void
|
171 |
+
*/
|
172 |
+
public function saveLoadExceptions($type = 'post', $postId = '')
|
173 |
+
{
|
174 |
+
if ($type == 'post' && !$postId) {
|
175 |
+
// $postId needs to have a value if $type is a 'post' type
|
176 |
+
return false;
|
177 |
+
}
|
178 |
+
|
179 |
+
if (! in_array($type, array('post', 'front_page'))) {
|
180 |
+
// Invalid request
|
181 |
+
return false;
|
182 |
+
}
|
183 |
+
|
184 |
+
// Any global upload options
|
185 |
+
$isPostOptionStyles = (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it']));
|
186 |
+
$isPostOptionScripts = (isset($_POST['wpacu_scripts_load_it']) && ! empty($_POST['wpacu_scripts_load_it']));
|
187 |
+
|
188 |
+
$loadExceptionsStyles = $loadExceptionsScripts = array();
|
189 |
+
|
190 |
+
// Clear existing list first
|
191 |
+
if ($type == 'post') {
|
192 |
+
delete_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions');
|
193 |
+
} elseif ($type == 'front_page') {
|
194 |
+
delete_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions');
|
195 |
+
}
|
196 |
+
|
197 |
+
if (! $isPostOptionStyles && ! $isPostOptionScripts) {
|
198 |
+
return false;
|
199 |
+
}
|
200 |
+
|
201 |
+
// Load Exception
|
202 |
+
if (isset($_POST['wpacu_styles_load_it']) && ! empty($_POST['wpacu_styles_load_it'])) {
|
203 |
+
foreach ($_POST['wpacu_styles_load_it'] as $wpacuHandle) {
|
204 |
+
// Do not append it if the global unload is removed
|
205 |
+
if (isset($_POST['wpacu_options_styles'][$wpacuHandle])
|
206 |
+
&& $_POST['wpacu_options_styles'][$wpacuHandle] == 'remove') {
|
207 |
+
continue;
|
208 |
+
}
|
209 |
+
$loadExceptionsStyles[] = $wpacuHandle;
|
210 |
+
}
|
211 |
+
}
|
212 |
+
|
213 |
+
if (! empty($_POST['wpacu_scripts_load_it'])) {
|
214 |
+
foreach ($_POST['wpacu_scripts_load_it'] as $wpacuHandle) {
|
215 |
+
// Do not append it if the global unload is removed
|
216 |
+
if (isset($_POST['wpacu_options_scripts'][$wpacuHandle])
|
217 |
+
&& $_POST['wpacu_options_scripts'][$wpacuHandle] == 'remove') {
|
218 |
+
continue;
|
219 |
+
}
|
220 |
+
$loadExceptionsScripts[] = $wpacuHandle;
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
if (! empty($loadExceptionsStyles) || ! empty($loadExceptionsScripts)) {
|
225 |
+
// Default
|
226 |
+
$list = array('styles' => array(), 'scripts' => array());
|
227 |
+
|
228 |
+
// Build list
|
229 |
+
if (! empty($loadExceptionsStyles)) {
|
230 |
+
foreach ($loadExceptionsStyles as $postHandle) {
|
231 |
+
$list['styles'][] = $postHandle;
|
232 |
+
}
|
233 |
+
}
|
234 |
+
|
235 |
+
if (! empty($loadExceptionsScripts)) {
|
236 |
+
foreach ($loadExceptionsScripts as $postHandle) {
|
237 |
+
$list['scripts'][] = $postHandle;
|
238 |
+
}
|
239 |
+
}
|
240 |
+
|
241 |
+
if (is_array($list['styles'])) {
|
242 |
+
$list['styles'] = array_unique($list['styles']);
|
243 |
+
}
|
244 |
+
|
245 |
+
if (is_array($list['scripts'])) {
|
246 |
+
$list['scripts'] = array_unique($list['scripts']);
|
247 |
+
}
|
248 |
+
|
249 |
+
$jsonLoadExceptions = json_encode($list);
|
250 |
+
|
251 |
+
if ($type == 'post') {
|
252 |
+
if (! add_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions, true)) {
|
253 |
+
update_post_meta($postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions', $jsonLoadExceptions);
|
254 |
+
}
|
255 |
+
} elseif ($type == 'front_page') {
|
256 |
+
update_option(WPACU_PLUGIN_NAME . '_front_page_load_exceptions', $jsonLoadExceptions);
|
257 |
+
}
|
258 |
+
}
|
259 |
+
}
|
260 |
+
|
261 |
+
/**
|
262 |
+
*
|
263 |
+
*/
|
264 |
+
public function saveToEverywhereUnloads()
|
265 |
+
{
|
266 |
+
$postStyles = (isset($_POST['wpacu_global_unload_styles']) && is_array($_POST['wpacu_global_unload_styles']))
|
267 |
+
? $_POST['wpacu_global_unload_styles'] : array();
|
268 |
+
|
269 |
+
$postScripts = (isset($_POST['wpacu_global_unload_scripts']) && is_array($_POST['wpacu_global_unload_scripts']))
|
270 |
+
? $_POST['wpacu_global_unload_scripts'] : array();
|
271 |
+
|
272 |
+
// Is there any entry already in JSON format?
|
273 |
+
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_global_unload');
|
274 |
+
|
275 |
+
// Default list as array
|
276 |
+
$existingListEmpty = array('styles' => array(), 'scripts' => array());
|
277 |
+
|
278 |
+
if (! $existingListJson) {
|
279 |
+
$existingList = $existingListEmpty;
|
280 |
+
} else {
|
281 |
+
$existingList = json_decode($existingListJson, true);
|
282 |
+
|
283 |
+
if (json_last_error() != JSON_ERROR_NONE) {
|
284 |
+
$existingList = $existingListEmpty;
|
285 |
+
}
|
286 |
+
}
|
287 |
+
|
288 |
+
// Append to the list anything from the POST (if any)
|
289 |
+
if (! empty($postStyles)) {
|
290 |
+
foreach ($postStyles as $postStyleHandle) {
|
291 |
+
$existingList['styles'][] = $postStyleHandle;
|
292 |
+
}
|
293 |
+
}
|
294 |
+
|
295 |
+
if (! empty($postScripts)) {
|
296 |
+
foreach ($postScripts as $postScriptHandle) {
|
297 |
+
$existingList['scripts'][] = $postScriptHandle;
|
298 |
+
}
|
299 |
+
}
|
300 |
+
|
301 |
+
// Make sure all entries are unique (no handle duplicates)
|
302 |
+
$existingList['styles'] = array_unique($existingList['styles']);
|
303 |
+
$existingList['scripts'] = array_unique($existingList['scripts']);
|
304 |
+
|
305 |
+
update_option(
|
306 |
+
WPACU_PLUGIN_NAME.'_global_unload',
|
307 |
+
json_encode($existingList)
|
308 |
+
);
|
309 |
+
}
|
310 |
+
|
311 |
+
/**
|
312 |
+
* @return bool
|
313 |
+
*/
|
314 |
+
public function removeEverywhereUnloads()
|
315 |
+
{
|
316 |
+
$stylesList = isset($_POST['wpacu_options_styles']) ? $_POST['wpacu_options_styles'] : array();
|
317 |
+
$scriptsList = isset($_POST['wpacu_options_scripts']) ? $_POST['wpacu_options_scripts'] : array();
|
318 |
+
|
319 |
+
$removeStylesList = $removeScriptsList = array();
|
320 |
+
|
321 |
+
$isUpdated = false;
|
322 |
+
|
323 |
+
if (! empty($stylesList)) {
|
324 |
+
foreach ($stylesList as $handle => $value) {
|
325 |
+
if ($value == 'remove') {
|
326 |
+
$removeStylesList[] = $handle;
|
327 |
+
}
|
328 |
+
}
|
329 |
+
}
|
330 |
+
|
331 |
+
if (! empty($scriptsList)) {
|
332 |
+
foreach ($scriptsList as $handle => $value) {
|
333 |
+
if ($value == 'remove') {
|
334 |
+
$removeScriptsList[] = $handle;
|
335 |
+
}
|
336 |
+
}
|
337 |
+
}
|
338 |
+
|
339 |
+
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_global_unload');
|
340 |
+
|
341 |
+
if (! $existingListJson) {
|
342 |
+
return false;
|
343 |
+
}
|
344 |
+
|
345 |
+
$existingList = json_decode($existingListJson, true);
|
346 |
+
|
347 |
+
if (json_last_error() == JSON_ERROR_NONE) {
|
348 |
+
foreach (array('styles', 'scripts') as $assetType) {
|
349 |
+
if ($assetType === 'styles') {
|
350 |
+
$list = $removeStylesList;
|
351 |
+
} elseif ($assetType === 'scripts') {
|
352 |
+
$list = $removeScriptsList;
|
353 |
+
}
|
354 |
+
|
355 |
+
if (empty($list)) {
|
356 |
+
continue;
|
357 |
+
}
|
358 |
+
|
359 |
+
foreach ($list as $handle) {
|
360 |
+
$handleKey = array_search($handle, $existingList[$assetType]);
|
361 |
+
|
362 |
+
if ($handleKey !== false) {
|
363 |
+
unset($existingList[$assetType][$handleKey]);
|
364 |
+
$isUpdated = true;
|
365 |
+
}
|
366 |
+
}
|
367 |
+
}
|
368 |
+
|
369 |
+
if ($isUpdated) {
|
370 |
+
update_option(
|
371 |
+
WPACU_PLUGIN_NAME . '_global_unload',
|
372 |
+
json_encode($existingList)
|
373 |
+
);
|
374 |
+
}
|
375 |
+
}
|
376 |
+
|
377 |
+
return $isUpdated;
|
378 |
+
}
|
379 |
+
|
380 |
+
/**
|
381 |
+
*
|
382 |
+
*/
|
383 |
+
public function saveToBulkUnloads()
|
384 |
+
{
|
385 |
+
global $post;
|
386 |
+
|
387 |
+
$postType = $post->post_type;
|
388 |
+
|
389 |
+
$postStyles = (isset($_POST['wpacu_bulk_unload_styles']) && is_array($_POST['wpacu_bulk_unload_styles']))
|
390 |
+
? $_POST['wpacu_bulk_unload_styles'] : array();
|
391 |
+
|
392 |
+
$postScripts = (isset($_POST['wpacu_bulk_unload_scripts']) && is_array($_POST['wpacu_bulk_unload_scripts']))
|
393 |
+
? $_POST['wpacu_bulk_unload_scripts'] : array();
|
394 |
+
|
395 |
+
// Is there any entry already in JSON format?
|
396 |
+
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_bulk_unload');
|
397 |
+
|
398 |
+
// Default list as array
|
399 |
+
$existingListEmpty = array(
|
400 |
+
'styles' => array('post_type' => array($postType => array())),
|
401 |
+
'scripts' => array('post_type' => array($postType => array()))
|
402 |
+
);
|
403 |
+
|
404 |
+
if (! $existingListJson) {
|
405 |
+
$existingList = $existingListEmpty;
|
406 |
+
} else {
|
407 |
+
$existingList = json_decode($existingListJson, true);
|
408 |
+
|
409 |
+
if (json_last_error() != JSON_ERROR_NONE) {
|
410 |
+
$existingList = $existingListEmpty;
|
411 |
+
}
|
412 |
+
}
|
413 |
+
|
414 |
+
// Append to the list anything from the POST (if any)
|
415 |
+
// Make sure all entries are unique (no handle duplicates)
|
416 |
+
$list = array();
|
417 |
+
|
418 |
+
foreach (array('styles', 'scripts') as $assetType) {
|
419 |
+
if ($assetType === 'styles') {
|
420 |
+
$list = $postStyles;
|
421 |
+
} elseif ($assetType === 'scripts') {
|
422 |
+
$list = $postScripts;
|
423 |
+
}
|
424 |
+
|
425 |
+
if (empty($list)) {
|
426 |
+
continue;
|
427 |
+
}
|
428 |
+
|
429 |
+
foreach ($list as $bulkType => $values) {
|
430 |
+
if (empty($values)) {
|
431 |
+
continue;
|
432 |
+
}
|
433 |
+
|
434 |
+
if ($bulkType === 'post_type') {
|
435 |
+
foreach ($values as $postType => $handles) {
|
436 |
+
$existingList[$assetType]['post_type'][$postType] = array_unique($handles);
|
437 |
+
}
|
438 |
+
}
|
439 |
+
}
|
440 |
+
}
|
441 |
+
|
442 |
+
update_option(
|
443 |
+
WPACU_PLUGIN_NAME.'_bulk_unload',
|
444 |
+
json_encode($existingList)
|
445 |
+
);
|
446 |
+
}
|
447 |
+
|
448 |
+
/**
|
449 |
+
* @param string $postType
|
450 |
+
* @return bool
|
451 |
+
*/
|
452 |
+
public function removeBulkUnloads($postType = '')
|
453 |
+
{
|
454 |
+
if (! $postType) {
|
455 |
+
global $post;
|
456 |
+
|
457 |
+
// At this time (12 Nov 2016) post type unload is the only option in bulk unloads
|
458 |
+
$postType = $post->post_type;
|
459 |
+
}
|
460 |
+
|
461 |
+
$stylesList = isset($_POST['wpacu_options_post_type_styles'])
|
462 |
+
? $_POST['wpacu_options_post_type_styles'] : array();
|
463 |
+
|
464 |
+
$scriptsList = isset($_POST['wpacu_options_post_type_scripts'])
|
465 |
+
? $_POST['wpacu_options_post_type_scripts'] : array();
|
466 |
+
|
467 |
+
$removeStylesList = $removeScriptsList = array();
|
468 |
+
|
469 |
+
$isUpdated = false;
|
470 |
+
|
471 |
+
if (! empty($stylesList)) {
|
472 |
+
foreach ($stylesList as $handle => $value) {
|
473 |
+
if ($value == 'remove') {
|
474 |
+
$removeStylesList[] = $handle;
|
475 |
+
}
|
476 |
+
}
|
477 |
+
}
|
478 |
+
|
479 |
+
if (! empty($scriptsList)) {
|
480 |
+
foreach ($scriptsList as $handle => $value) {
|
481 |
+
if ($value == 'remove') {
|
482 |
+
$removeScriptsList[] = $handle;
|
483 |
+
}
|
484 |
+
}
|
485 |
+
}
|
486 |
+
|
487 |
+
$existingListJson = get_option(WPACU_PLUGIN_NAME.'_bulk_unload');
|
488 |
+
|
489 |
+
if (! $existingListJson) {
|
490 |
+
return false;
|
491 |
+
}
|
492 |
+
|
493 |
+
$existingList = json_decode($existingListJson, true);
|
494 |
+
|
495 |
+
if (json_last_error() == JSON_ERROR_NONE) {
|
496 |
+
$list = array();
|
497 |
+
|
498 |
+
foreach (array('styles', 'scripts') as $assetType) {
|
499 |
+
if ($assetType === 'styles') {
|
500 |
+
$list = $removeStylesList;
|
501 |
+
} elseif ($assetType === 'scripts') {
|
502 |
+
$list = $removeScriptsList;
|
503 |
+
}
|
504 |
+
|
505 |
+
if (empty($list)) {
|
506 |
+
continue;
|
507 |
+
}
|
508 |
+
|
509 |
+
foreach ($existingList[$assetType]['post_type'][$postType] as $handleKey => $handle) {
|
510 |
+
if (in_array($handle, $list)) {
|
511 |
+
unset($existingList[$assetType]['post_type'][$postType][$handleKey]);
|
512 |
+
$isUpdated = true;
|
513 |
+
}
|
514 |
+
}
|
515 |
+
}
|
516 |
+
|
517 |
+
update_option(
|
518 |
+
WPACU_PLUGIN_NAME.'_bulk_unload',
|
519 |
+
json_encode($existingList)
|
520 |
+
);
|
521 |
+
}
|
522 |
+
|
523 |
+
return $isUpdated;
|
524 |
+
}
|
525 |
+
}
|
readme.txt
CHANGED
@@ -1,24 +1,24 @@
|
|
1 |
-
=== WP Asset
|
2 |
Contributors: gabelivan
|
3 |
Tags: speed, pagespeed, dequeue style, dequeue script, unload style, unload script, fast
|
4 |
Donate link: http://www.gabelivan.com/donate/
|
5 |
Requires at least: 4.0
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 1.2.
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl.html
|
10 |
|
11 |
Make your website load FASTER by preventing specific scripts (.JS) & styles (.CSS) from loading on pages/posts and home page
|
12 |
|
13 |
== Description ==
|
14 |
-
* Make your web pages load FASTER with "WP Asset
|
15 |
* Faster page load = Happier Visitors = More Conversions
|
16 |
|
17 |
There are often times when you are using a theme and a number of plugins which are enabled and run on the same page. However, you don't need to use all of them and to improve the speed of your website and make the HTML source code cleaner (convenient for debugging purposes), it's better to prevent those styles and scripts from loading.
|
18 |
|
19 |
For instance, you might use a plugin that generates contact forms and it loads its assets (.CSS and .JS files) in every page of your website instead of doing it only in the /contact page (if that's the only place where you need it).
|
20 |
|
21 |
-
WP Asset
|
22 |
|
23 |
= This plugin's benefits include =
|
24 |
* Decreases number of HTTP requests loaded (important for faster load)
|
@@ -38,15 +38,15 @@ NOTE: People that have tested the plugin are so far happy with it and I want to
|
|
38 |
== Installation ==
|
39 |
1. Upload the "wp-asset-clean-up" folder in your plugins folder
|
40 |
2. Activate the plugin (if server's PHP version is below 5.3, it will show you an error and activation will not be made)
|
41 |
-
3. Edit any page / post/ custom post and you will see a meta box called "WP Asset
|
42 |
-
4. To unload the assets for the "Home Page", go to "WP Asset
|
43 |
|
44 |
== Frequently Asked Questions ==
|
45 |
= What PHP version is required for this plugin to work? =
|
46 |
|
47 |
5.3+
|
48 |
|
49 |
-
= I've noticed scripts and styles that are loaded on the page, but they do not show in the "WP Asset
|
50 |
|
51 |
If that's the case, then those assets weren't loaded properly into WordPress by the theme/plugin author as they were likely hardcoded and not enqueued the WordPress way. Here's a tutorial that will help you understand better the enqueuing process: http://www.wpbeginner.com/wp-tutorials/how-to-properly-add-javascripts-and-styles-in-wordpress/
|
52 |
|
@@ -70,14 +70,14 @@ The plugin makes AJAX calls to retrieve the data from the front-end page with 10
|
|
70 |
|
71 |
- You are loading the WordPress Dashboard through HTTPS, but you are forcing the front-end to load via HTTP.
|
72 |
|
73 |
-
In this case, it's advisable to enable "Manage in the Front-end?" in "Settings" of "WP Asset
|
74 |
|
75 |
Although I've written the code to ensure maximum compatibility, there are factors which are not up to the quality of the plugin that could interfere with it.
|
76 |
In case the assets are not loading for you, please write me on the forum and I will be happy to assist you!
|
77 |
|
78 |
-
= In some pages, I do not see styles and scripts in the "WP Asset
|
79 |
|
80 |
-
If that's the case, you might have other functions or plugins (e.g. Plugin Organizer) that are loading prior to WP Asset
|
81 |
|
82 |
Note that Plugin Organizer has a file that is in "mu-plugins" which will load prior to any plugin you have in "plugins", thus, if you have disabled specific plugins through "Plugin Organizer" in some pages, their assets will obviously not show in the assets list as they are not loaded at all in the first place.
|
83 |
|
@@ -87,11 +87,21 @@ If that's the case, then it's advisable to consult with a developer (ideally the
|
|
87 |
|
88 |
== Screenshots ==
|
89 |
1. When editing a post/page (custom post type as well) a meta box will load with the asset list
|
90 |
-
2. Styles (.CSS) loaded for the home page when accessing the "WP Asset
|
91 |
-
3. Scripts (.JS) loaded for the home page having an alert message when accessing the "WP Asset
|
92 |
4. Scripts (.JS) are selected for site-wide unload
|
93 |
|
94 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
95 |
= 1.2.2 =
|
96 |
* Bug Fix: Sometimes scripts in the footer were not detected for unloading
|
97 |
|
1 |
+
=== WP Asset CleanUp ===
|
2 |
Contributors: gabelivan
|
3 |
Tags: speed, pagespeed, dequeue style, dequeue script, unload style, unload script, fast
|
4 |
Donate link: http://www.gabelivan.com/donate/
|
5 |
Requires at least: 4.0
|
6 |
+
Tested up to: 4.7
|
7 |
+
Stable tag: 1.2.4.1
|
8 |
License: GPLv3
|
9 |
License URI: http://www.gnu.org/licenses/gpl.html
|
10 |
|
11 |
Make your website load FASTER by preventing specific scripts (.JS) & styles (.CSS) from loading on pages/posts and home page
|
12 |
|
13 |
== Description ==
|
14 |
+
* Make your web pages load FASTER with "WP Asset CleanUp"
|
15 |
* Faster page load = Happier Visitors = More Conversions
|
16 |
|
17 |
There are often times when you are using a theme and a number of plugins which are enabled and run on the same page. However, you don't need to use all of them and to improve the speed of your website and make the HTML source code cleaner (convenient for debugging purposes), it's better to prevent those styles and scripts from loading.
|
18 |
|
19 |
For instance, you might use a plugin that generates contact forms and it loads its assets (.CSS and .JS files) in every page of your website instead of doing it only in the /contact page (if that's the only place where you need it).
|
20 |
|
21 |
+
WP Asset CleanUp scans your page and detects all the assets that are loaded. All you have to do when editing a page/post is just to select the ones you DO NOT wish to load.
|
22 |
|
23 |
= This plugin's benefits include =
|
24 |
* Decreases number of HTTP requests loaded (important for faster load)
|
38 |
== Installation ==
|
39 |
1. Upload the "wp-asset-clean-up" folder in your plugins folder
|
40 |
2. Activate the plugin (if server's PHP version is below 5.3, it will show you an error and activation will not be made)
|
41 |
+
3. Edit any page / post/ custom post and you will see a meta box called "WP Asset CleanUp" which will load the list of all the loaded .css and .js files
|
42 |
+
4. To unload the assets for the "Home Page", go to "WP Asset CleanUp" menu on the left panel of the Dashboard
|
43 |
|
44 |
== Frequently Asked Questions ==
|
45 |
= What PHP version is required for this plugin to work? =
|
46 |
|
47 |
5.3+
|
48 |
|
49 |
+
= I've noticed scripts and styles that are loaded on the page, but they do not show in the "WP Asset CleanUp" list when editing the page. Why is that? =
|
50 |
|
51 |
If that's the case, then those assets weren't loaded properly into WordPress by the theme/plugin author as they were likely hardcoded and not enqueued the WordPress way. Here's a tutorial that will help you understand better the enqueuing process: http://www.wpbeginner.com/wp-tutorials/how-to-properly-add-javascripts-and-styles-in-wordpress/
|
52 |
|
70 |
|
71 |
- You are loading the WordPress Dashboard through HTTPS, but you are forcing the front-end to load via HTTP.
|
72 |
|
73 |
+
In this case, it's advisable to enable "Manage in the Front-end?" in "Settings" of "WP Asset CleanUp", thus making the list to show at the bottom of the posts, pages and front-page only for the logged in users with admin privileges.
|
74 |
|
75 |
Although I've written the code to ensure maximum compatibility, there are factors which are not up to the quality of the plugin that could interfere with it.
|
76 |
In case the assets are not loading for you, please write me on the forum and I will be happy to assist you!
|
77 |
|
78 |
+
= In some pages, I do not see styles and scripts in the "WP Asset CleanUp" List =
|
79 |
|
80 |
+
If that's the case, you might have other functions or plugins (e.g. Plugin Organizer) that are loading prior to WP Asset CleanUp.
|
81 |
|
82 |
Note that Plugin Organizer has a file that is in "mu-plugins" which will load prior to any plugin you have in "plugins", thus, if you have disabled specific plugins through "Plugin Organizer" in some pages, their assets will obviously not show in the assets list as they are not loaded at all in the first place.
|
83 |
|
87 |
|
88 |
== Screenshots ==
|
89 |
1. When editing a post/page (custom post type as well) a meta box will load with the asset list
|
90 |
+
2. Styles (.CSS) loaded for the home page when accessing the "WP Asset CleanUp" Dashboard's menu
|
91 |
+
3. Scripts (.JS) loaded for the home page having an alert message when accessing the "WP Asset CleanUp" Dashboard's menu
|
92 |
4. Scripts (.JS) are selected for site-wide unload
|
93 |
|
94 |
== Changelog ==
|
95 |
+
= 1.2.4.1 =
|
96 |
+
* Bug Fix: When the handle's key on update was equal with 0 (for remove global unload), the rule would not be remove *
|
97 |
+
|
98 |
+
= 1.2.4 =
|
99 |
+
* Bug Fix: Remove "Unload everywhere" rule had to be updated to work no matter what key is assigned to the handle in the array resulting from the JSON
|
100 |
+
|
101 |
+
= 1.2.3 =
|
102 |
+
* Assets can now be disabled for all the pages belonging to a specific post type
|
103 |
+
* The list of assets disabled globally (everywhere, for a specific post type etc.) can be managed in a single page too
|
104 |
+
|
105 |
= 1.2.2 =
|
106 |
* Bug Fix: Sometimes scripts in the footer were not detected for unloading
|
107 |
|
templates/meta-box-loaded.php
CHANGED
@@ -10,13 +10,19 @@ if (! isset($data)) {
|
|
10 |
<div class="wpacu_verified">
|
11 |
<strong>Verified Page:</strong> <a target="_blank" href="<?php echo $data['fetch_url']; ?>"><span><?php echo $data['fetch_url']; ?></span></a>
|
12 |
</div>
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
<h3><?php _e('Styles (.css files)', WPACU_PLUGIN_NAME); ?></h3>
|
15 |
<?php
|
16 |
if (! empty($data['all']['styles'])) {
|
17 |
?>
|
18 |
<p><?php echo sprintf(__('The following styles are loading on this page. Please select the ones that are %sNOT NEEDED%s. If you are not sure which ones to unload, it is better to leave them enabled (unchecked) and consult with a developer about unloading the assets.', WPACU_PLUGIN_NAME), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?></p>
|
19 |
-
<p><?php echo __('"Load in on this page (make exception)" will take effect when
|
20 |
<?php
|
21 |
if ($data['core_styles_loaded']) {
|
22 |
?>
|
@@ -40,13 +46,19 @@ if (! empty($data['all']['styles'])) {
|
|
40 |
$class = ($active) ? 'wpacu_not_load' : '';
|
41 |
$checked = ($active) ? 'checked="checked"' : '';
|
42 |
|
43 |
-
$globalUnloaded = $isLoadException = false;
|
|
|
|
|
|
|
|
|
|
|
44 |
|
45 |
-
//
|
46 |
-
if (in_array($obj->handle, $data['
|
47 |
-
$
|
48 |
-
|
49 |
|
|
|
50 |
if (in_array($obj->handle, $data['load_exceptions']['styles'])) {
|
51 |
$isLoadException = true;
|
52 |
} else {
|
@@ -72,16 +84,20 @@ if (! empty($data['all']['styles'])) {
|
|
72 |
?>
|
73 |
</p>
|
74 |
|
|
|
75 |
<?php
|
|
|
76 |
if ($globalUnloaded) {
|
77 |
-
|
78 |
<p><strong style="color: #d54e21;">This asset is unloaded everywhere</strong></p>
|
|
|
79 |
<?php
|
80 |
}
|
81 |
?>
|
82 |
|
83 |
<ul class="wpacu_asset_options">
|
84 |
<?php
|
|
|
85 |
if ($globalUnloaded) {
|
86 |
?>
|
87 |
<li>
|
@@ -110,11 +126,77 @@ if (! empty($data['all']['styles'])) {
|
|
110 |
class="wpacu_global_unload wpacu_global_style"
|
111 |
id="wpacu_global_unload_style_<?php echo $obj->handle; ?>" type="checkbox"
|
112 |
name="wpacu_global_unload_styles[]" value="<?php echo $obj->handle; ?>"/>
|
113 |
-
|
114 |
</li>
|
115 |
<?php
|
116 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
117 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
<li id="wpacu_load_it_option_style_<?php echo $obj->handle; ?>">
|
119 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
120 |
id="wpacu_style_load_it_<?php echo $obj->handle; ?>"
|
@@ -123,7 +205,7 @@ if (! empty($data['all']['styles'])) {
|
|
123 |
<?php if ($isLoadException) { ?> checked="checked" <?php } ?>
|
124 |
name="wpacu_styles_load_it[]"
|
125 |
value="<?php echo $obj->handle; ?>"/>
|
126 |
-
Load it on this page (make exception<?php if (! $
|
127 |
</li>
|
128 |
</ul>
|
129 |
<?php
|
@@ -158,13 +240,23 @@ if (! empty($data['all']['styles'])) {
|
|
158 |
} else {
|
159 |
echo __('It looks like there are no public .css files loaded or the ones visible do not follow <a href="https://codex.wordpress.org/Function_Reference/wp_enqueue_style">the WordPress way of enqueuing styles</a>.', WPACU_PLUGIN_NAME);
|
160 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
161 |
?>
|
162 |
<h3><?php _e('Scripts (.js files)', WPACU_PLUGIN_NAME); ?></h3>
|
163 |
<?php
|
164 |
if (! empty($data['all']['scripts'])) {
|
165 |
?>
|
166 |
<p><?php echo sprintf(__('The following scripts are loading on this page. Please select the ones that are %sNOT NEEDED%s. If you are not sure which ones to unload, it is better to leave them enabled and consult with a developer about unloading the assets.', WPACU_PLUGIN_NAME), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?></p>
|
167 |
-
<p><?php echo __('"Load in on this page (make exception)" will take effect when
|
168 |
<?php
|
169 |
if ($data['core_scripts_loaded']) {
|
170 |
?>
|
@@ -188,13 +280,19 @@ if (! empty($data['all']['scripts'])) {
|
|
188 |
$class = ($active) ? 'wpacu_not_load' : '';
|
189 |
$checked = ($active) ? 'checked="checked"' : '';
|
190 |
|
191 |
-
$globalUnloaded = $isLoadException = false;
|
192 |
|
193 |
-
//
|
194 |
if (in_array($obj->handle, $data['global_unload']['scripts']) && !$class) {
|
195 |
-
$globalUnloaded = true;
|
196 |
-
|
197 |
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
if (in_array($obj->handle, $data['load_exceptions']['scripts'])) {
|
199 |
$isLoadException = true;
|
200 |
} else {
|
@@ -219,20 +317,26 @@ if (! empty($data['all']['scripts'])) {
|
|
219 |
}
|
220 |
?>
|
221 |
</p>
|
222 |
-
<?php
|
223 |
-
if ($globalUnloaded) {
|
224 |
-
?>
|
225 |
-
<p><strong style="color: #d54e21;">This asset is unloaded everywhere</strong></p>
|
226 |
-
<?php } ?>
|
227 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
<ul class="wpacu_asset_options">
|
229 |
|
230 |
<?php
|
|
|
231 |
if ($globalUnloaded) {
|
232 |
-
|
233 |
<li>
|
234 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
235 |
-
class="
|
236 |
type="radio"
|
237 |
name="wpacu_options_scripts[<?php echo $obj->handle; ?>]"
|
238 |
checked="checked"
|
@@ -242,7 +346,7 @@ if (! empty($data['all']['scripts'])) {
|
|
242 |
|
243 |
<li>
|
244 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
245 |
-
class="
|
246 |
type="radio"
|
247 |
name="wpacu_options_scripts[<?php echo $obj->handle; ?>]"
|
248 |
value="remove" />
|
@@ -258,11 +362,77 @@ if (! empty($data['all']['scripts'])) {
|
|
258 |
type="checkbox"
|
259 |
name="wpacu_global_unload_scripts[]"
|
260 |
value="<?php echo $obj->handle; ?>"/>
|
261 |
-
|
262 |
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
263 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
}
|
|
|
265 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
<li id="wpacu_load_it_option_script_<?php echo $obj->handle; ?>">
|
267 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
268 |
id="wpacu_script_load_it_<?php echo $obj->handle; ?>"
|
@@ -271,7 +441,7 @@ if (! empty($data['all']['scripts'])) {
|
|
271 |
name="wpacu_scripts_load_it[]"
|
272 |
<?php if ($isLoadException) { ?> checked="checked" <?php } ?>
|
273 |
value="<?php echo $obj->handle; ?>" />
|
274 |
-
Load it on this page (make exception<?php if (! $
|
275 |
</li>
|
276 |
</ul>
|
277 |
<?php
|
@@ -294,7 +464,7 @@ if (! empty($data['all']['scripts'])) {
|
|
294 |
}
|
295 |
|
296 |
if (isset($obj->extra->data) && ! empty($obj->extra->data)) { ?>
|
297 |
-
<p><?php _e('Inline:', WPACU_PLUGIN_NAME); ?> <em><?php echo $obj->extra->data; ?></em></p>
|
298 |
<?php
|
299 |
}
|
300 |
|
@@ -315,3 +485,8 @@ if (! empty($data['all']['scripts'])) {
|
|
315 |
} else {
|
316 |
echo __('It looks like there are no public .js files loaded or the ones visible do not follow <a href="https://codex.wordpress.org/Function_Reference/wp_enqueue_script">the WordPress way of enqueuing scripts</a>.', WPACU_PLUGIN_NAME);
|
317 |
}
|
|
|
|
|
|
|
|
|
|
10 |
<div class="wpacu_verified">
|
11 |
<strong>Verified Page:</strong> <a target="_blank" href="<?php echo $data['fetch_url']; ?>"><span><?php echo $data['fetch_url']; ?></span></a>
|
12 |
</div>
|
13 |
+
<?php
|
14 |
+
/*
|
15 |
+
* --------------------
|
16 |
+
* [START] STYLES LIST
|
17 |
+
* --------------------
|
18 |
+
*/
|
19 |
+
?>
|
20 |
<h3><?php _e('Styles (.css files)', WPACU_PLUGIN_NAME); ?></h3>
|
21 |
<?php
|
22 |
if (! empty($data['all']['styles'])) {
|
23 |
?>
|
24 |
<p><?php echo sprintf(__('The following styles are loading on this page. Please select the ones that are %sNOT NEEDED%s. If you are not sure which ones to unload, it is better to leave them enabled (unchecked) and consult with a developer about unloading the assets.', WPACU_PLUGIN_NAME), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?></p>
|
25 |
+
<p><?php echo __('"Load in on this page (make exception)" will take effect when a bulk unload rule is used. Otherwise, the asset will load anyway unless you select it for unload.', WPACU_PLUGIN_NAME); ?></p>
|
26 |
<?php
|
27 |
if ($data['core_styles_loaded']) {
|
28 |
?>
|
46 |
$class = ($active) ? 'wpacu_not_load' : '';
|
47 |
$checked = ($active) ? 'checked="checked"' : '';
|
48 |
|
49 |
+
$globalUnloaded = $postTypeUnloaded = $isLoadException = $isGlobalRule = false;
|
50 |
+
|
51 |
+
// Mark it as unloaded - Everywhere
|
52 |
+
if (in_array($obj->handle, $data['global_unload']['styles'])) {
|
53 |
+
$globalUnloaded = $isGlobalRule = true;
|
54 |
+
}
|
55 |
|
56 |
+
// Mark it as unloaded - for the Current Post Type
|
57 |
+
if (isset($data['post_type_unloaded']['styles']) && in_array($obj->handle, $data['post_type_unloaded']['styles'])) {
|
58 |
+
$postTypeUnloaded = $isGlobalRule = true;
|
59 |
+
}
|
60 |
|
61 |
+
if ($isGlobalRule) {
|
62 |
if (in_array($obj->handle, $data['load_exceptions']['styles'])) {
|
63 |
$isLoadException = true;
|
64 |
} else {
|
84 |
?>
|
85 |
</p>
|
86 |
|
87 |
+
<div style="padding: 5px 10px; margin: 15px 0; background: white; border: 1px solid #eee; border-radius: 5px;">
|
88 |
<?php
|
89 |
+
// Unloaded Everywhere
|
90 |
if ($globalUnloaded) {
|
91 |
+
?>
|
92 |
<p><strong style="color: #d54e21;">This asset is unloaded everywhere</strong></p>
|
93 |
+
<div class="clear"></div>
|
94 |
<?php
|
95 |
}
|
96 |
?>
|
97 |
|
98 |
<ul class="wpacu_asset_options">
|
99 |
<?php
|
100 |
+
// [START] UNLOAD EVERYWHERE
|
101 |
if ($globalUnloaded) {
|
102 |
?>
|
103 |
<li>
|
126 |
class="wpacu_global_unload wpacu_global_style"
|
127 |
id="wpacu_global_unload_style_<?php echo $obj->handle; ?>" type="checkbox"
|
128 |
name="wpacu_global_unload_styles[]" value="<?php echo $obj->handle; ?>"/>
|
129 |
+
Unload Everywhere</label>
|
130 |
</li>
|
131 |
<?php
|
132 |
}
|
133 |
+
// [END] UNLOAD EVERYWHERE
|
134 |
+
?>
|
135 |
+
</ul>
|
136 |
+
</div>
|
137 |
+
|
138 |
+
<?php if ($data['post_type']) { ?>
|
139 |
+
<div style="padding: 5px 10px; margin: 15px 0; background: white; border: 1px solid #eee; border-radius: 5px;">
|
140 |
+
<?php } ?>
|
141 |
+
|
142 |
+
<?php
|
143 |
+
// Unloaded On All Pages Belonging to the page's Post Type
|
144 |
+
if ($postTypeUnloaded) {
|
145 |
+
?>
|
146 |
+
<p><strong style="color: #d54e21;">This asset is unloaded on all <u><?php echo $data['post_type']; ?></u> post types.</strong></p>
|
147 |
+
<div class="clear"></div>
|
148 |
+
<?php
|
149 |
+
}
|
150 |
+
?>
|
151 |
+
|
152 |
+
<ul class="wpacu_asset_options">
|
153 |
+
<?php
|
154 |
+
if ($data['post_type']) {
|
155 |
+
// [START] ALL PAGES HAVING THE SAME POST TYPE
|
156 |
+
if ($postTypeUnloaded) {
|
157 |
+
?>
|
158 |
+
<li>
|
159 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
160 |
+
class="wpacu_bulk_option wpacu_style"
|
161 |
+
type="radio"
|
162 |
+
name="wpacu_options_post_type_styles[<?php echo $obj->handle; ?>]"
|
163 |
+
checked="checked"
|
164 |
+
value="default"/>
|
165 |
+
Keep rule</label>
|
166 |
+
</li>
|
167 |
+
|
168 |
+
<li>
|
169 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
170 |
+
class="wpacu_bulk_option wpacu_style"
|
171 |
+
type="radio"
|
172 |
+
name="wpacu_options_post_type_styles[<?php echo $obj->handle; ?>]"
|
173 |
+
value="remove"/>
|
174 |
+
Remove rule</label>
|
175 |
+
</li>
|
176 |
+
<?php
|
177 |
+
} else {
|
178 |
+
?>
|
179 |
+
<li>
|
180 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
181 |
+
class="wpacu_post_type_unload wpacu_post_type_style"
|
182 |
+
id="wpacu_bulk_unload_post_type_style_<?php echo $obj->handle; ?>"
|
183 |
+
type="checkbox"
|
184 |
+
name="wpacu_bulk_unload_styles[post_type][<?php echo $data['post_type']; ?>][]"
|
185 |
+
value="<?php echo $obj->handle; ?>"/>
|
186 |
+
Unload on All Pages of <strong><?php echo $data['post_type']; ?></strong> post type</label>
|
187 |
+
</li>
|
188 |
+
<?php
|
189 |
+
}
|
190 |
+
}
|
191 |
+
// [END] ALL PAGES HAVING THE SAME POST TYPE
|
192 |
?>
|
193 |
+
</ul>
|
194 |
+
|
195 |
+
<?php if ($data['post_type']) { ?>
|
196 |
+
</div>
|
197 |
+
<?php } ?>
|
198 |
+
|
199 |
+
<ul class="wpacu_asset_options">
|
200 |
<li id="wpacu_load_it_option_style_<?php echo $obj->handle; ?>">
|
201 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
202 |
id="wpacu_style_load_it_<?php echo $obj->handle; ?>"
|
205 |
<?php if ($isLoadException) { ?> checked="checked" <?php } ?>
|
206 |
name="wpacu_styles_load_it[]"
|
207 |
value="<?php echo $obj->handle; ?>"/>
|
208 |
+
Load it on this page (make exception<?php if (! $isGlobalRule) { echo ' IF any unload rule is applied'; } ?>)</label>
|
209 |
</li>
|
210 |
</ul>
|
211 |
<?php
|
240 |
} else {
|
241 |
echo __('It looks like there are no public .css files loaded or the ones visible do not follow <a href="https://codex.wordpress.org/Function_Reference/wp_enqueue_style">the WordPress way of enqueuing styles</a>.', WPACU_PLUGIN_NAME);
|
242 |
}
|
243 |
+
/* -------------------
|
244 |
+
* [END] STYLES LIST
|
245 |
+
* -------------------
|
246 |
+
*/
|
247 |
+
|
248 |
+
/*
|
249 |
+
* ---------------------
|
250 |
+
* [START] SCRIPTS LIST
|
251 |
+
* ---------------------
|
252 |
+
*/
|
253 |
?>
|
254 |
<h3><?php _e('Scripts (.js files)', WPACU_PLUGIN_NAME); ?></h3>
|
255 |
<?php
|
256 |
if (! empty($data['all']['scripts'])) {
|
257 |
?>
|
258 |
<p><?php echo sprintf(__('The following scripts are loading on this page. Please select the ones that are %sNOT NEEDED%s. If you are not sure which ones to unload, it is better to leave them enabled and consult with a developer about unloading the assets.', WPACU_PLUGIN_NAME), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?></p>
|
259 |
+
<p><?php echo __('"Load in on this page (make exception)" will take effect when a bulk unload rule is used. Otherwise, the asset will load anyway unless you select it for unload.', WPACU_PLUGIN_NAME); ?></p>
|
260 |
<?php
|
261 |
if ($data['core_scripts_loaded']) {
|
262 |
?>
|
280 |
$class = ($active) ? 'wpacu_not_load' : '';
|
281 |
$checked = ($active) ? 'checked="checked"' : '';
|
282 |
|
283 |
+
$globalUnloaded = $postTypeUnloaded = $isLoadException = $isGlobalRule = false;
|
284 |
|
285 |
+
// Mark it as unloaded - Everywhere
|
286 |
if (in_array($obj->handle, $data['global_unload']['scripts']) && !$class) {
|
287 |
+
$globalUnloaded = $isGlobalRule = true;
|
288 |
+
}
|
289 |
|
290 |
+
// Mark it as unloaded - for the Current Post Type
|
291 |
+
if (isset($data['post_type_unloaded']['scripts']) && in_array($obj->handle, $data['post_type_unloaded']['scripts']) && !$class) {
|
292 |
+
$postTypeUnloaded = $isGlobalRule = true;
|
293 |
+
}
|
294 |
+
|
295 |
+
if ($isGlobalRule) {
|
296 |
if (in_array($obj->handle, $data['load_exceptions']['scripts'])) {
|
297 |
$isLoadException = true;
|
298 |
} else {
|
317 |
}
|
318 |
?>
|
319 |
</p>
|
|
|
|
|
|
|
|
|
|
|
320 |
|
321 |
+
<?php
|
322 |
+
// Unloaded Everywhere
|
323 |
+
if ($globalUnloaded) {
|
324 |
+
?>
|
325 |
+
<p><strong style="color: #d54e21;">This asset is unloaded everywhere</strong></p>
|
326 |
+
<?php
|
327 |
+
}
|
328 |
+
?>
|
329 |
+
|
330 |
+
<div style="padding: 5px 10px; margin: 15px 0; background: white; border: 1px solid #eee; border-radius: 5px;">
|
331 |
<ul class="wpacu_asset_options">
|
332 |
|
333 |
<?php
|
334 |
+
// [START] UNLOAD EVERYWHERE
|
335 |
if ($globalUnloaded) {
|
336 |
+
?>
|
337 |
<li>
|
338 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
339 |
+
class="wpacu_bulk_option wpacu_script"
|
340 |
type="radio"
|
341 |
name="wpacu_options_scripts[<?php echo $obj->handle; ?>]"
|
342 |
checked="checked"
|
346 |
|
347 |
<li>
|
348 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
349 |
+
class="wpacu_bulk_option wpacu_script"
|
350 |
type="radio"
|
351 |
name="wpacu_options_scripts[<?php echo $obj->handle; ?>]"
|
352 |
value="remove" />
|
362 |
type="checkbox"
|
363 |
name="wpacu_global_unload_scripts[]"
|
364 |
value="<?php echo $obj->handle; ?>"/>
|
365 |
+
Unload Everywhere</label>
|
366 |
</li>
|
367 |
+
<?php
|
368 |
+
}
|
369 |
+
// [END] UNLOAD EVERYWHERE
|
370 |
+
?>
|
371 |
+
|
372 |
+
</ul>
|
373 |
+
</div>
|
374 |
+
|
375 |
+
<?php if ($data['post_type']) { ?>
|
376 |
+
<div style="padding: 5px 10px; margin: 15px 0; background: white; border: 1px solid #eee; border-radius: 5px;">
|
377 |
+
<?php } ?>
|
378 |
+
|
379 |
<?php
|
380 |
+
// Unloaded On All Pages Belonging to the page's Post Type
|
381 |
+
if ($postTypeUnloaded) {
|
382 |
+
?>
|
383 |
+
<p><strong style="color: #d54e21;">This asset is unloaded on all <u><?php echo $data['post_type']; ?></u> post types.</strong></p>
|
384 |
+
<div class="clear"></div>
|
385 |
+
<?php
|
386 |
+
}
|
387 |
+
?>
|
388 |
+
|
389 |
+
<ul class="wpacu_asset_options">
|
390 |
+
<?php
|
391 |
+
if ($data['post_type']) {
|
392 |
+
// [START] ALL PAGES HAVING THE SAME POST TYPE
|
393 |
+
if ($postTypeUnloaded) {
|
394 |
+
?>
|
395 |
+
<li>
|
396 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
397 |
+
class="wpacu_post_type_option wpacu_post_type_script"
|
398 |
+
type="radio"
|
399 |
+
name="wpacu_options_post_type_scripts[<?php echo $obj->handle; ?>]"
|
400 |
+
checked="checked"
|
401 |
+
value="default"/>
|
402 |
+
Keep rule</label>
|
403 |
+
</li>
|
404 |
+
|
405 |
+
<li>
|
406 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
407 |
+
class="wpacu_post_type_option wpacu_post_type_script"
|
408 |
+
type="radio"
|
409 |
+
name="wpacu_options_post_type_scripts[<?php echo $obj->handle; ?>]"
|
410 |
+
value="remove"/>
|
411 |
+
Remove rule</label>
|
412 |
+
</li>
|
413 |
+
<?php
|
414 |
+
} else {
|
415 |
+
?>
|
416 |
+
<li>
|
417 |
+
<label><input data-handle="<?php echo $obj->handle; ?>"
|
418 |
+
class="wpacu_post_type_unload wpacu_post_type_script"
|
419 |
+
id="wpacu_global_unload_post_type_script_<?php echo $obj->handle; ?>"
|
420 |
+
type="checkbox"
|
421 |
+
name="wpacu_bulk_unload_scripts[post_type][<?php echo $data['post_type']; ?>][]"
|
422 |
+
value="<?php echo $obj->handle; ?>"/>
|
423 |
+
Unload on All Pages of <strong><?php echo $data['post_type']; ?></strong> post type</label>
|
424 |
+
</li>
|
425 |
+
<?php
|
426 |
+
}
|
427 |
}
|
428 |
+
// [END] ALL PAGES HAVING THE SAME POST TYPE
|
429 |
?>
|
430 |
+
</ul>
|
431 |
+
<?php if ($data['post_type']) { ?>
|
432 |
+
</div>
|
433 |
+
<?php } ?>
|
434 |
+
|
435 |
+
<ul class="wpacu_asset_options">
|
436 |
<li id="wpacu_load_it_option_script_<?php echo $obj->handle; ?>">
|
437 |
<label><input data-handle="<?php echo $obj->handle; ?>"
|
438 |
id="wpacu_script_load_it_<?php echo $obj->handle; ?>"
|
441 |
name="wpacu_scripts_load_it[]"
|
442 |
<?php if ($isLoadException) { ?> checked="checked" <?php } ?>
|
443 |
value="<?php echo $obj->handle; ?>" />
|
444 |
+
Load it on this page (make exception<?php if (! $isGlobalRule) { echo ' IF any unload rule is applied'; } ?>)</label>
|
445 |
</li>
|
446 |
</ul>
|
447 |
<?php
|
464 |
}
|
465 |
|
466 |
if (isset($obj->extra->data) && ! empty($obj->extra->data)) { ?>
|
467 |
+
<p><?php _e('Inline:', WPACU_PLUGIN_NAME); ?> <em><?php echo strip_tags($obj->extra->data); ?></em></p>
|
468 |
<?php
|
469 |
}
|
470 |
|
485 |
} else {
|
486 |
echo __('It looks like there are no public .js files loaded or the ones visible do not follow <a href="https://codex.wordpress.org/Function_Reference/wp_enqueue_script">the WordPress way of enqueuing scripts</a>.', WPACU_PLUGIN_NAME);
|
487 |
}
|
488 |
+
/*
|
489 |
+
* -------------------
|
490 |
+
* [END] SCRIPTS LIST
|
491 |
+
* -------------------
|
492 |
+
*/
|
templates/settings-frontend.php
CHANGED
@@ -9,7 +9,7 @@ if (! isset($data)) {
|
|
9 |
|
10 |
<form action="#wpacu_wrap_assets" method="post">
|
11 |
<div id="wpacu_wrap_assets">
|
12 |
-
<h1>WP Asset
|
13 |
<p><small>* this area is shown only for the admin users and if "Manage in the Front-end?" was selected in the plugin's settings</small></p>
|
14 |
<p><small>* 'admin-bar', 'wpassetcleanup-icheck-square-red' and 'wpassetcleanup-style' are not included as they are irrelevant since they are used by the plugin for this area</small></p>
|
15 |
<?php
|
@@ -22,7 +22,7 @@ if (! isset($data)) {
|
|
22 |
value="<?php esc_attr_e('UPDATE', WPACU_PLUGIN_NAME); ?>" />
|
23 |
</div>
|
24 |
|
25 |
-
<p align="right"><small>Powered by WP Asset
|
26 |
</div>
|
27 |
<?php wp_nonce_field($data['nonce_action'], $data['nonce_name']); ?>
|
28 |
<input type="hidden" name="wpacu_update_asset_frontend" value="1" />
|
9 |
|
10 |
<form action="#wpacu_wrap_assets" method="post">
|
11 |
<div id="wpacu_wrap_assets">
|
12 |
+
<h1>WP Asset CleanUp</h1>
|
13 |
<p><small>* this area is shown only for the admin users and if "Manage in the Front-end?" was selected in the plugin's settings</small></p>
|
14 |
<p><small>* 'admin-bar', 'wpassetcleanup-icheck-square-red' and 'wpassetcleanup-style' are not included as they are irrelevant since they are used by the plugin for this area</small></p>
|
15 |
<?php
|
22 |
value="<?php esc_attr_e('UPDATE', WPACU_PLUGIN_NAME); ?>" />
|
23 |
</div>
|
24 |
|
25 |
+
<p align="right"><small>Powered by WP Asset CleanUp</small></p>
|
26 |
</div>
|
27 |
<?php wp_nonce_field($data['nonce_action'], $data['nonce_name']); ?>
|
28 |
<input type="hidden" name="wpacu_update_asset_frontend" value="1" />
|
templates/settings-globals.php
ADDED
@@ -0,0 +1,237 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* No direct access to this file
|
4 |
+
*/
|
5 |
+
if (! isset($data)) {
|
6 |
+
exit;
|
7 |
+
}
|
8 |
+
?>
|
9 |
+
<h1><?php _e('WP Asset CleanUp', WPACU_PLUGIN_NAME); ?></h1>
|
10 |
+
<h2><?php _e('Global Rules', WPACU_PLUGIN_NAME); ?></h2>
|
11 |
+
|
12 |
+
<nav class="nav-tab-wrapper">
|
13 |
+
<a href="admin.php?page=wpassetcleanup_globals" class="nav-tab <?php if ($data['for'] === 'everywhere') { ?>nav-tab-active<?php } ?>">Everywhere</a>
|
14 |
+
<a href="admin.php?page=wpassetcleanup_globals&wpacu_for=post_types" class="nav-tab <?php if ($data['for'] === 'post_types') { ?>nav-tab-active<?php } ?>">Post Types</a>
|
15 |
+
</nav>
|
16 |
+
|
17 |
+
<div class="clear"></div>
|
18 |
+
|
19 |
+
<?php
|
20 |
+
if ($data['for'] === 'post_types') {
|
21 |
+
?>
|
22 |
+
<div style="margin: 15px 0;">
|
23 |
+
<form id="wpacu_post_type_form" method="get" action="admin.php">
|
24 |
+
<input type="hidden" name="page" value="wpassetcleanup_globals" />
|
25 |
+
<input type="hidden" name="wpacu_for" value="post_types" />
|
26 |
+
|
27 |
+
<div style="margin: 0 0 10px 0;">Select the post type for which you want to see the unloaded scripts & styles:</div>
|
28 |
+
<select id="wpacu_post_type_select" name="wpacu_post_type">
|
29 |
+
<?php foreach ($data['post_types_list'] as $postType) { ?>
|
30 |
+
<option <?php if ($data['post_type'] === $postType) { echo 'selected="selected"'; } ?> value="<?php echo $postType; ?>"><?php echo $postType; ?></option>
|
31 |
+
<?php } ?>
|
32 |
+
</select>
|
33 |
+
</form>
|
34 |
+
</div>
|
35 |
+
<?php
|
36 |
+
}
|
37 |
+
?>
|
38 |
+
|
39 |
+
<form action="" method="post">
|
40 |
+
<?php
|
41 |
+
if ($data['for'] === 'everywhere') {
|
42 |
+
?>
|
43 |
+
<div class="clear"></div>
|
44 |
+
|
45 |
+
<div class="alert">
|
46 |
+
<p>This is the list of the assets that are <strong>globally unloaded</strong> on all pages (including home page).</p>
|
47 |
+
<p>If you want to remove this rule and have them loading, use the "Remove rule" checkbox.</p>
|
48 |
+
<p style="margin: 0; background: white; padding: 10px; border: 1px solid #ccc; width: auto; display: inline-block;">This list fills once you select "<em>Unload everywhere</em>" when you edit posts/pages for the assets that you want to prevent from loading on every page.</p>
|
49 |
+
</div>
|
50 |
+
|
51 |
+
<div class="clear"></div>
|
52 |
+
|
53 |
+
<div style="padding: 0 10px 0 0;">
|
54 |
+
<h3>Styles</h3>
|
55 |
+
<?php
|
56 |
+
if (! empty($data['values']['styles'])) {
|
57 |
+
?>
|
58 |
+
<table class="wp-list-table widefat fixed striped">
|
59 |
+
<tr>
|
60 |
+
<td><strong>Handle</strong></td>
|
61 |
+
<td><strong>Actions</strong></td>
|
62 |
+
</tr>
|
63 |
+
<?php
|
64 |
+
foreach ($data['values']['styles'] as $handle) {
|
65 |
+
?>
|
66 |
+
<tr class="wpacu_global_rule_row">
|
67 |
+
<td><strong><span style="color: green;"><?php echo $handle; ?></span></strong></td>
|
68 |
+
<td>
|
69 |
+
<label><input type="checkbox"
|
70 |
+
class="wpacu_remove_rule"
|
71 |
+
name="wpacu_options_styles[<?php echo $handle; ?>]"
|
72 |
+
value="remove" /> Remove rule</label>
|
73 |
+
</td>
|
74 |
+
</tr>
|
75 |
+
<?php
|
76 |
+
}
|
77 |
+
?>
|
78 |
+
</table>
|
79 |
+
<?php
|
80 |
+
} else {
|
81 |
+
?>
|
82 |
+
<p>There are no unloaded styles for your selection.</p>
|
83 |
+
<?php
|
84 |
+
}
|
85 |
+
?>
|
86 |
+
|
87 |
+
<h3>Scripts</h3>
|
88 |
+
<?php
|
89 |
+
if (! empty($data['values']['scripts'])) {
|
90 |
+
?>
|
91 |
+
<table class="wp-list-table widefat fixed striped">
|
92 |
+
<tr>
|
93 |
+
<td><strong>Handle</strong></td>
|
94 |
+
<td><strong>Actions</strong></td>
|
95 |
+
</tr>
|
96 |
+
<?php
|
97 |
+
foreach ($data['values']['scripts'] as $handle) {
|
98 |
+
?>
|
99 |
+
<tr class="wpacu_global_rule_row">
|
100 |
+
<td><strong><span style="color: green;"><?php echo $handle; ?></span></strong></td>
|
101 |
+
<td>
|
102 |
+
<label><input type="checkbox"
|
103 |
+
class="wpacu_remove_rule"
|
104 |
+
name="wpacu_options_scripts[<?php echo $handle; ?>]"
|
105 |
+
value="remove" /> Remove rule</label>
|
106 |
+
</td>
|
107 |
+
</tr>
|
108 |
+
<?php
|
109 |
+
}
|
110 |
+
?>
|
111 |
+
</table>
|
112 |
+
<?php
|
113 |
+
} else {
|
114 |
+
?>
|
115 |
+
<p>There are no unloaded scripts for your selection.</p>
|
116 |
+
<?php
|
117 |
+
}
|
118 |
+
?>
|
119 |
+
</div>
|
120 |
+
<?php
|
121 |
+
} elseif ($data['for'] === 'post_types') {
|
122 |
+
?>
|
123 |
+
<div class="clear"></div>
|
124 |
+
|
125 |
+
<div class="alert">
|
126 |
+
<p>This is the list of the assets that are <strong>unloaded</strong> on all pages belonging to the <strong><u><?php echo $data['post_type']; ?></u></strong> post type.</p>
|
127 |
+
<p>If you want to remove this rule, use the "Remove rule" checkbox.</p>
|
128 |
+
<p style="margin: 0; background: white; padding: 10px; border: 1px solid #ccc; width: auto; display: inline-block;">This list fills once you select "<em>Unload on All Pages of <strong><?php echo $data['post_type']; ?></strong> post type</em>" when you edit posts/pages for the assets that you want to prevent from loading.</p>
|
129 |
+
</div>
|
130 |
+
|
131 |
+
<div class="clear"></div>
|
132 |
+
|
133 |
+
<div style="padding: 0 10px 0 0;">
|
134 |
+
<h3>Styles</h3>
|
135 |
+
<?php
|
136 |
+
if (! empty($data['values']['styles'])) {
|
137 |
+
?>
|
138 |
+
<table class="wp-list-table widefat fixed striped">
|
139 |
+
<tr>
|
140 |
+
<td><strong>Handle</strong></td>
|
141 |
+
<td><strong>Actions</strong></td>
|
142 |
+
</tr>
|
143 |
+
<?php
|
144 |
+
foreach ($data['values']['styles'] as $handle) {
|
145 |
+
?>
|
146 |
+
<tr class="wpacu_global_rule_row">
|
147 |
+
<td><strong><span style="color: green;"><?php echo $handle; ?></span></strong></td>
|
148 |
+
<td>
|
149 |
+
<label><input type="checkbox"
|
150 |
+
class="wpacu_remove_rule"
|
151 |
+
name="wpacu_options_post_type_styles[<?php echo $handle; ?>]"
|
152 |
+
value="remove" /> Remove rule</label>
|
153 |
+
</td>
|
154 |
+
</tr>
|
155 |
+
<?php
|
156 |
+
}
|
157 |
+
?>
|
158 |
+
</table>
|
159 |
+
<?php
|
160 |
+
} else {
|
161 |
+
?>
|
162 |
+
<p>There are no unloaded styles for your selection.</p>
|
163 |
+
<?php
|
164 |
+
}
|
165 |
+
?>
|
166 |
+
|
167 |
+
<h3>Scripts</h3>
|
168 |
+
<?php
|
169 |
+
if (! empty($data['values']['scripts'])) {
|
170 |
+
?>
|
171 |
+
<table class="wp-list-table widefat fixed striped">
|
172 |
+
<tr>
|
173 |
+
<td><strong>Handle</strong></td>
|
174 |
+
<td><strong>Actions</strong></td>
|
175 |
+
</tr>
|
176 |
+
<?php
|
177 |
+
foreach ($data['values']['scripts'] as $handle) {
|
178 |
+
?>
|
179 |
+
<tr class="wpacu_global_rule_row">
|
180 |
+
<td><strong><span style="color: green;"><?php echo $handle; ?></span></strong></td>
|
181 |
+
<td>
|
182 |
+
<label><input type="checkbox"
|
183 |
+
class="wpacu_remove_rule"
|
184 |
+
name="wpacu_options_post_type_scripts[<?php echo $handle; ?>]"
|
185 |
+
value="remove" /> Remove rule</label>
|
186 |
+
</td>
|
187 |
+
</tr>
|
188 |
+
<?php
|
189 |
+
}
|
190 |
+
?>
|
191 |
+
</table>
|
192 |
+
<?php
|
193 |
+
} else {
|
194 |
+
?>
|
195 |
+
<p>There are no unloaded scripts for your selection.</p>
|
196 |
+
<?php
|
197 |
+
}
|
198 |
+
?>
|
199 |
+
</div>
|
200 |
+
<?php
|
201 |
+
}
|
202 |
+
|
203 |
+
$noAssetsToRemove = (empty($data['values']['styles']) && empty($data['values']['scripts']));
|
204 |
+
?>
|
205 |
+
<?php wp_nonce_field($data['nonce_action'], $data['nonce_name']); ?>
|
206 |
+
|
207 |
+
<input type="hidden" name="wpacu_for" value="<?php echo $data['for']; ?>" />
|
208 |
+
<input type="hidden" name="wpacu_update" value="1" />
|
209 |
+
|
210 |
+
<?php
|
211 |
+
if ($data['post_type']) {
|
212 |
+
?>
|
213 |
+
<input type="hidden" name="wpacu_post_type" value="<?php echo $data['post_type']; ?>" />
|
214 |
+
<?php
|
215 |
+
}
|
216 |
+
?>
|
217 |
+
|
218 |
+
<div class="clear"></div>
|
219 |
+
|
220 |
+
<p class="submit">
|
221 |
+
<input type="submit"
|
222 |
+
name="submit"
|
223 |
+
id="submit"
|
224 |
+
<?php if ($noAssetsToRemove) { ?>
|
225 |
+
disabled="disabled"
|
226 |
+
<?php } ?>
|
227 |
+
class="button button-primary"
|
228 |
+
value="<?php esc_attr_e('Update', WPACU_PLUGIN_NAME); ?>" />
|
229 |
+
<?php
|
230 |
+
if ($noAssetsToRemove) {
|
231 |
+
?>
|
232 |
+
<small>Note: There are no unloaded assets (scripts & styles) to be managed</small>
|
233 |
+
<?php
|
234 |
+
}
|
235 |
+
?>
|
236 |
+
</p>
|
237 |
+
</form>
|
templates/settings-home-page.php
CHANGED
@@ -6,7 +6,7 @@ if (! isset($data)) {
|
|
6 |
exit;
|
7 |
}
|
8 |
?>
|
9 |
-
<h1><?php _e('WP Asset
|
10 |
<h2><?php _e('Home Page Scripts & Styles Management', WPACU_PLUGIN_NAME); ?></h2>
|
11 |
|
12 |
<?php
|
6 |
exit;
|
7 |
}
|
8 |
?>
|
9 |
+
<h1><?php _e('WP Asset CleanUp', WPACU_PLUGIN_NAME); ?></h1>
|
10 |
<h2><?php _e('Home Page Scripts & Styles Management', WPACU_PLUGIN_NAME); ?></h2>
|
11 |
|
12 |
<?php
|
templates/settings-plugin.php
CHANGED
@@ -7,7 +7,7 @@ if (! isset($data)) {
|
|
7 |
}
|
8 |
?>
|
9 |
<div class="wrap">
|
10 |
-
<h1><?php _e('WP Asset
|
11 |
<h2><?php _e('Plugin Settings', WPACU_PLUGIN_NAME); ?></h2>
|
12 |
|
13 |
<form method="post" action="options.php">
|
7 |
}
|
8 |
?>
|
9 |
<div class="wrap">
|
10 |
+
<h1><?php _e('WP Asset CleanUp', WPACU_PLUGIN_NAME); ?></h1>
|
11 |
<h2><?php _e('Plugin Settings', WPACU_PLUGIN_NAME); ?></h2>
|
12 |
|
13 |
<form method="post" action="options.php">
|
wpacu-load.php
CHANGED
@@ -12,19 +12,19 @@ define('WPACU_PLUGIN_URL', plugins_url('', WPACU_PLUGIN_FILE));
|
|
12 |
// Autoload Classes
|
13 |
function includeWpAssetCleanUpClassesAutoload($class)
|
14 |
{
|
15 |
-
$
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
'WpAssetCleanUp\Menu' => 'Menu',
|
20 |
-
'WpAssetCleanUp\Settings' => 'Settings'
|
21 |
-
);
|
22 |
-
|
23 |
-
if (! isset($classes[$class])) {
|
24 |
return;
|
25 |
}
|
26 |
|
27 |
-
$
|
|
|
|
|
|
|
|
|
|
|
28 |
|
29 |
if (file_exists($pathToClass)) {
|
30 |
include_once $pathToClass;
|
@@ -36,6 +36,12 @@ spl_autoload_register('includeWpAssetCleanUpClassesAutoload');
|
|
36 |
// Main Class
|
37 |
WpAssetCleanUp\Main::instance();
|
38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
// Settings
|
40 |
new WpAssetCleanUp\Settings;
|
41 |
|
12 |
// Autoload Classes
|
13 |
function includeWpAssetCleanUpClassesAutoload($class)
|
14 |
{
|
15 |
+
$namespace = 'WpAssetCleanUp';
|
16 |
+
|
17 |
+
// continue only if the namespace is within $class
|
18 |
+
if (strpos($class, $namespace) === false) {
|
|
|
|
|
|
|
|
|
|
|
19 |
return;
|
20 |
}
|
21 |
|
22 |
+
$classFilter = str_replace($namespace.'\\', '', $class);
|
23 |
+
|
24 |
+
// Can be directories such as "Helpers"
|
25 |
+
$classFilter = str_replace('\\', '/', $classFilter);
|
26 |
+
|
27 |
+
$pathToClass = WPACU_PLUGIN_CLASSES_PATH.$classFilter.'.php';
|
28 |
|
29 |
if (file_exists($pathToClass)) {
|
30 |
include_once $pathToClass;
|
36 |
// Main Class
|
37 |
WpAssetCleanUp\Main::instance();
|
38 |
|
39 |
+
// Plugin's Assets (used only when you're logged in)
|
40 |
+
new \WpAssetCleanUp\OwnAssets;
|
41 |
+
|
42 |
+
// Add / Update / Remove Settings
|
43 |
+
(new WpAssetCleanUp\Update)->init();
|
44 |
+
|
45 |
// Settings
|
46 |
new WpAssetCleanUp\Settings;
|
47 |
|
wpacu.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
* Plugin Name: WP Asset
|
4 |
* Plugin URI: http://www.bitrepository.com/remove-unused-scripts-styles-wordpress-pages.html
|
5 |
-
* Version: 1.2.
|
6 |
* Description: Prevent Chosen Scripts & Styles from loading in Posts/Pages that you don't need
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://www.gabelivan.com/
|
1 |
<?php
|
2 |
/*
|
3 |
+
* Plugin Name: WP Asset CleanUp
|
4 |
* Plugin URI: http://www.bitrepository.com/remove-unused-scripts-styles-wordpress-pages.html
|
5 |
+
* Version: 1.2.4.1
|
6 |
* Description: Prevent Chosen Scripts & Styles from loading in Posts/Pages that you don't need
|
7 |
* Author: Gabriel Livan
|
8 |
* Author URI: http://www.gabelivan.com/
|