· 5 years ago · Jun 24, 2020, 12:48 AM
1<?php
2/**
3 * bootstrap functions and definitions
4 *
5 * @link https://developer.wordpress.org/themes/basics/theme-functions/
6 *
7 * @package bootstrap
8 */
9add_filter( 'paginate_links', function( $link ){
10
11 if(filter_input(INPUT_GET, 'post')){
12 return remove_query_arg('post', $link);
13 }elseif(filter_input(INPUT_GET, 'page')){
14 return remove_query_arg('page', $link);
15 }else{
16 return $link;
17 }
18
19});
20
21/**
22 * Register widget area.
23 *
24 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
25 */
26function bootstrap_widgets_init(){
27
28 register_sidebar(array(
29 'name' => esc_html__('Sidebar', 'bootstrap'),
30 'id' => 'sidebar-1',
31 'description' => esc_html__('Add widgets here.', 'bootstrap'),
32 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
33 'after_widget' => '</section>',
34 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
35 'after_title' => '</h2>',
36 ));
37
38 register_sidebar(array(
39 'name' => esc_html__('Sidebar (Archive)', 'bootstrap'),
40 'id' => 'bootstrap_archive',
41 'description' => esc_html__('Add widgets here.', 'bootstrap'),
42 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
43 'after_widget' => '</section>',
44 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
45 'after_title' => '</h2>',
46 ));
47
48 register_sidebar(array(
49 'name' => esc_html__('Sidebar (Author)', 'bootstrap'),
50 'id' => 'bootstrap_author',
51 'description' => esc_html__('Add widgets here.', 'bootstrap'),
52 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
53 'after_widget' => '</section>',
54 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
55 'after_title' => '</h2>',
56 ));
57
58 register_sidebar(array(
59 'name' => esc_html__('Sidebar (Authors)', 'bootstrap'),
60 'id' => 'bootstrap_authors',
61 'description' => esc_html__('Add widgets here.', 'bootstrap'),
62 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
63 'after_widget' => '</section>',
64 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
65 'after_title' => '</h2>',
66 ));
67
68 register_sidebar(array(
69 'name' => esc_html__('Sidebar (Blog)', 'bootstrap'),
70 'id' => 'bootstrap_blog',
71 'description' => esc_html__('Add widgets here.', 'bootstrap'),
72 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
73 'after_widget' => '</section>',
74 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
75 'after_title' => '</h2>',
76 ));
77
78 register_sidebar(array(
79 'name' => esc_html__('Sidebar (Category)', 'bootstrap'),
80 'id' => 'bootstrap_category',
81 'description' => esc_html__('Add widgets here.', 'bootstrap'),
82 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
83 'after_widget' => '</section>',
84 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
85 'after_title' => '</h2>',
86 ));
87
88 register_sidebar(array(
89 'name' => esc_html__('Sidebar (Gallery)', 'bootstrap'),
90 'id' => 'bootstrap_gallery',
91 'description' => esc_html__('Add widgets here.', 'bootstrap'),
92 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
93 'after_widget' => '</section>',
94 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
95 'after_title' => '</h2>',
96 ));
97
98 register_sidebar(array(
99 'name' => esc_html__('Sidebar (Home)', 'bootstrap'),
100 'id' => 'bootstrap_home',
101 'description' => esc_html__('Add widgets here.', 'bootstrap'),
102 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
103 'after_widget' => '</section>',
104 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
105 'after_title' => '</h2>',
106 ));
107
108 register_sidebar(array(
109 'name' => esc_html__('Sidebar (Login-Register)', 'bootstrap'),
110 'id' => 'bootstrap_login_register',
111 'description' => esc_html__('Add widgets here.', 'bootstrap'),
112 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
113 'after_widget' => '</section>',
114 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
115 'after_title' => '</h2>',
116 ));
117
118 register_sidebar(array(
119 'name' => esc_html__('Sidebar (Right)', 'bootstrap'),
120 'id' => 'bootstrap_right',
121 'description' => esc_html__('Add widgets here.', 'bootstrap'),
122 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
123 'after_widget' => '</section>',
124 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
125 'after_title' => '</h2>',
126 ));
127
128 register_sidebar(array(
129 'name' => esc_html__('Sidebar (Subpages)', 'bootstrap'),
130 'id' => 'bootstrap_subpages',
131 'description' => esc_html__('Add widgets here.', 'bootstrap'),
132 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
133 'after_widget' => '</section>',
134 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
135 'after_title' => '</h2>',
136 ));
137
138 register_sidebar(array(
139 'name' => esc_html__('Header Widget Area', 'bootstrap'),
140 'id' => 'custom-header-widget',
141 'description' => esc_html__('Add widgets here.', 'bootstrap'),
142 'before_widget' => '<div class="header-widget">',
143 'after_widget' => '</div>',
144 'before_title' => '<h2 class="header-widget-title">',
145 'after_title' => '</h2>',
146 ));
147
148 register_sidebar(array(
149 'name' => esc_html__('Footer Widget Area', 'bootstrap'),
150 'id' => 'custom-footer-widget',
151 'description' => esc_html__('Add widgets here.', 'bootstrap'),
152 'before_widget' => '<div class="footer-widget">',
153 'after_widget' => '</div>',
154 'before_title' => '<h2 class="footer-widget-title">',
155 'after_title' => '</h2>',
156 ));
157
158 if (class_exists('WooCommerce')){
159 register_sidebar(array(
160 'name' => esc_html__('WooCommerce', 'bootstrap'),
161 'id' => 'bootstrap_woocommerce',
162 'description' => esc_html__('Add widgets here.', 'bootstrap'),
163 'before_widget' => '<section id="%1$s" class="widget %2$s m-0">',
164 'after_widget' => '</section>',
165 'before_title' => '<h2 class="widget-title bg-warning rounded border border-white pt-2 pl-3 pb-2 pr-3">',
166 'after_title' => '</h3>',
167 ));
168 }
169
170 register_widget('Bootstrap_Authors_Widget');
171
172}
173add_action('widgets_init', 'bootstrap_widgets_init');
174
175/**
176 * Enqueue scripts and styles.
177 */
178function bootstrap_scripts(){
179
180 wp_enqueue_style('bootstrap-style', get_stylesheet_uri());
181
182 wp_enqueue_script('bootstrap-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '20151215', true);
183
184 wp_enqueue_style('dashicons');
185
186 wp_enqueue_script('bootstrap-skip-link-focus-fix', get_template_directory_uri() . '/js/skip-link-focus-fix.js', array(), '20151215', true);
187
188 if (is_singular() && comments_open() && get_option('thread_comments')){
189 wp_enqueue_script('comment-reply');
190 }
191
192 wp_enqueue_script('bootstrap-form-validation', get_template_directory_uri() . '/js/form-validation.js', array(), '20151215', true);
193
194 //global $wp_scripts; var_dump($wp_scripts->registered);
195
196 /*unset($wp_scripts->registered['utils']);
197 unset($wp_scripts->registered['common']);
198 unset($wp_scripts->registered['wp-a11y']);
199 unset($wp_scripts->registered['sack']);
200 unset($wp_scripts->registered['quicktags']);
201 unset($wp_scripts->registered['colorpicker']);
202 unset($wp_scripts->registered['editor']);
203 unset($wp_scripts->registered['wp-fullscreen-stub']);
204 unset($wp_scripts->registered['wp-ajax-response']);
205 unset($wp_scripts->registered['wp-api-request']);
206 unset($wp_scripts->registered['wp-pointer']);
207 unset($wp_scripts->registered['autosave']);
208 unset($wp_scripts->registered['heartbeat']);
209 unset($wp_scripts->registered['wp-auth-check']);
210 unset($wp_scripts->registered['wp-lists']);
211 unset($wp_scripts->registered['prototype']);
212 unset($wp_scripts->registered['scriptaculous-root']);
213 unset($wp_scripts->registered['scriptaculous-builder']);
214 unset($wp_scripts->registered['scriptaculous-dragdrop']);
215 unset($wp_scripts->registered['scriptaculous-effects']);
216 unset($wp_scripts->registered['scriptaculous-slider']);
217 unset($wp_scripts->registered['scriptaculous-sound']);
218 unset($wp_scripts->registered['scriptaculous-controls']);
219 unset($wp_scripts->registered['scriptaculous']);
220 unset($wp_scripts->registered['cropper']);*/
221 //unset($wp_scripts->registered['jquery']);
222 //unset($wp_scripts->registered['jquery-core']);
223 //unset($wp_scripts->registered['jquery-migrate']);
224 //unset($wp_scripts->registered['jquery-ui-core']);
225 //unset($wp_scripts->registered['jquery-effects-core']);
226 //unset($wp_scripts->registered['jquery-effects-blind']);
227 //unset($wp_scripts->registered['jquery-effects-bounce']);
228 //unset($wp_scripts->registered['jquery-effects-clip']);
229 //unset($wp_scripts->registered['jquery-effects-drop']);
230 //unset($wp_scripts->registered['jquery-effects-explode']);
231 //unset($wp_scripts->registered['jquery-effects-fade']);
232 //unset($wp_scripts->registered['jquery-effects-fold']);
233 //unset($wp_scripts->registered['jquery-effects-highlight']);
234 //unset($wp_scripts->registered['jquery-effects-puff']);
235 //unset($wp_scripts->registered['jquery-effects-pulsate']);
236 //unset($wp_scripts->registered['jquery-effects-scale']);
237 //unset($wp_scripts->registered['jquery-effects-shake']);
238 //unset($wp_scripts->registered['jquery-effects-size']);
239 //unset($wp_scripts->registered['jquery-effects-slide']);
240 //unset($wp_scripts->registered['jquery-effects-transfer']);
241 //unset($wp_scripts->registered['jquery-ui-accordion']);
242 //unset($wp_scripts->registered['jquery-ui-autocomplete']);
243 //unset($wp_scripts->registered['jquery-ui-button']);
244 //unset($wp_scripts->registered['jquery-ui-datepicker']);
245 //unset($wp_scripts->registered['jquery-ui-dialog']);
246 //unset($wp_scripts->registered['jquery-ui-draggable']);
247 //unset($wp_scripts->registered['jquery-ui-droppable']);
248 //unset($wp_scripts->registered['jquery-ui-menu']);
249 //unset($wp_scripts->registered['jquery-ui-mouse']);
250 //unset($wp_scripts->registered['jquery-ui-position']);
251 //unset($wp_scripts->registered['jquery-ui-progressbar']);
252 //unset($wp_scripts->registered['jquery-ui-resizable']);
253 //unset($wp_scripts->registered['jquery-ui-selectable']);
254 //unset($wp_scripts->registered['jquery-ui-selectmenu']);
255 //unset($wp_scripts->registered['jquery-ui-slider']);
256 //unset($wp_scripts->registered['jquery-ui-sortable']);
257 //unset($wp_scripts->registered['jquery-ui-spinner']);
258 //unset($wp_scripts->registered['jquery-ui-tabs']);
259 //unset($wp_scripts->registered['jquery-ui-tooltip']);
260 //unset($wp_scripts->registered['jquery-ui-widget']);
261 //unset($wp_scripts->registered['jquery-form']);
262 //unset($wp_scripts->registered['jquery-color']);
263 //unset($wp_scripts->registered['schedule']);
264 //unset($wp_scripts->registered['jquery-query']);
265 //unset($wp_scripts->registered['jquery-serialize-object']);
266 //unset($wp_scripts->registered['jquery-hotkeys']);
267 //unset($wp_scripts->registered['jquery-table-hotkeys']);
268 //unset($wp_scripts->registered['jquery-touch-punch']);
269/* unset($wp_scripts->registered['suggest']);
270 unset($wp_scripts->registered['imagesloaded']);
271 unset($wp_scripts->registered['masonry']);
272 unset($wp_scripts->registered['jquery-masonry']);
273 unset($wp_scripts->registered['thickbox']);
274 unset($wp_scripts->registered['jcrop']);
275 unset($wp_scripts->registered['swfobject']);
276 unset($wp_scripts->registered['moxiejs']);
277 unset($wp_scripts->registered['plupload']);
278 unset($wp_scripts->registered['plupload-all']);
279 unset($wp_scripts->registered['plupload-html5']);
280 unset($wp_scripts->registered['plupload-flash']);
281 unset($wp_scripts->registered['plupload-silverlight']);
282 unset($wp_scripts->registered['plupload-html4']);
283 unset($wp_scripts->registered['plupload-handlers']);
284 unset($wp_scripts->registered['wp-plupload']);
285 unset($wp_scripts->registered['swfupload']);
286 unset($wp_scripts->registered['swfupload-all']);
287 unset($wp_scripts->registered['swfupload-handlers']);
288 unset($wp_scripts->registered['comment-reply']);
289 unset($wp_scripts->registered['json2']);
290 unset($wp_scripts->registered['underscore']);
291 unset($wp_scripts->registered['backbone']);
292 unset($wp_scripts->registered['wp-util']);
293 unset($wp_scripts->registered['wp-sanitize']);
294 unset($wp_scripts->registered['wp-backbone']);
295 unset($wp_scripts->registered['revisions']);
296 unset($wp_scripts->registered['imgareaselect']);
297 unset($wp_scripts->registered['mediaelement']);
298 unset($wp_scripts->registered['mediaelement-core']);
299 unset($wp_scripts->registered['mediaelement-migrate']);
300 unset($wp_scripts->registered['mediaelement-vimeo']);
301 unset($wp_scripts->registered['wp-mediaelement']);
302 unset($wp_scripts->registered['wp-codemirror']);
303 unset($wp_scripts->registered['csslint']);
304 unset($wp_scripts->registered['jshint']);
305 unset($wp_scripts->registered['jsonlint']);
306 unset($wp_scripts->registered['htmlhint']);
307 unset($wp_scripts->registered['htmlhint-kses']);
308 unset($wp_scripts->registered['code-editor']);
309 unset($wp_scripts->registered['wp-theme-plugin-editor']);
310 unset($wp_scripts->registered['wp-playlist']);
311 unset($wp_scripts->registered['zxcvbn-async']);
312 unset($wp_scripts->registered['password-strength-meter']);
313 unset($wp_scripts->registered['user-profile']);
314 unset($wp_scripts->registered['language-chooser']);
315 unset($wp_scripts->registered['user-suggest']);
316 unset($wp_scripts->registered['admin-bar']);
317 unset($wp_scripts->registered['wplink']);
318 unset($wp_scripts->registered['wpdialogs']);
319 unset($wp_scripts->registered['word-count']);
320 unset($wp_scripts->registered['media-upload']);
321 unset($wp_scripts->registered['hoverIntent']);
322 unset($wp_scripts->registered['customize-base']);
323 unset($wp_scripts->registered['customize-loader']);
324 unset($wp_scripts->registered['customize-preview']);
325 unset($wp_scripts->registered['customize-models']);
326 unset($wp_scripts->registered['customize-views']);
327 unset($wp_scripts->registered['customize-controls']);
328 unset($wp_scripts->registered['customize-selective-refresh']);
329 unset($wp_scripts->registered['customize-widgets']);
330 unset($wp_scripts->registered['customize-preview-widgets']);
331 unset($wp_scripts->registered['customize-nav-menus']);
332 unset($wp_scripts->registered['customize-preview-nav-menus']);
333 unset($wp_scripts->registered['wp-custom-header']);
334 unset($wp_scripts->registered['accordion']);
335 unset($wp_scripts->registered['shortcode']);
336 unset($wp_scripts->registered['media-models']);
337 unset($wp_scripts->registered['wp-embed']);
338 unset($wp_scripts->registered['media-views']);
339 unset($wp_scripts->registered['media-editor']);
340 unset($wp_scripts->registered['media-audiovideo']);
341 unset($wp_scripts->registered['mce-view']);
342 unset($wp_scripts->registered['wp-api']);
343 unset($wp_scripts->registered['prettyphoto']);
344 unset($wp_scripts->registered['waypoints']);
345 unset($wp_scripts->registered['jquery_ui_tabs_rotate']);
346 unset($wp_scripts->registered['isotope']);
347 unset($wp_scripts->registered['twbs-pagination']);
348 unset($wp_scripts->registered['nivo-slider']);
349 unset($wp_scripts->registered['flexslider']);
350 unset($wp_scripts->registered['wpb_composer_front_js']);
351 unset($wp_scripts->registered['siteorigin-panels-front-styles']);
352 unset($wp_scripts->registered['siteorigin-parallax']);
353 unset($wp_scripts->registered['DOP-js-prototypes']);
354 unset($wp_scripts->registered['DOP-js-jquery-dopselect']);
355 unset($wp_scripts->registered['DOPBSP-js-frontend-calendar']);
356 unset($wp_scripts->registered['DOPBSP-js-frontend']);
357 unset($wp_scripts->registered['DOPBSP-js-frontend-deposit']);
358 unset($wp_scripts->registered['DOPBSP-js-frontend-discounts']);
359 unset($wp_scripts->registered['DOPBSP-js-frontend-fees']);
360 unset($wp_scripts->registered['DOPBSP-js-frontend-rules']);
361 unset($wp_scripts->registered['dot-js']);
362 unset($wp_scripts->registered['dot-js-calendar']);
363 unset($wp_scripts->registered['dot-js-calendar-availability']);
364 unset($wp_scripts->registered['dot-js-calendar-days']);
365 unset($wp_scripts->registered['dot-js-calendar-day']);
366 unset($wp_scripts->registered['dot-js-calendar-schedule']);
367 unset($wp_scripts->registered['contact-form-7']);
368 unset($wp_scripts->registered['google-recaptcha']);
369 unset($wp_scripts->registered['themepunchboxext']);
370 unset($wp_scripts->registered['tp-tools']);
371 unset($wp_scripts->registered['essential-grid-essential-grid-script']);
372 unset($wp_scripts->registered['popupaoc-legacy-js']);
373 unset($wp_scripts->registered['popupaoc-popup-js']);
374 unset($wp_scripts->registered['revmin']);
375 unset($wp_scripts->registered['sowb-fittext']);
376 unset($wp_scripts->registered['dessandro-imagesLoaded']);
377 unset($wp_scripts->registered['dessandro-packery']);
378 unset($wp_scripts->registered['sow-google-map']);
379 unset($wp_scripts->registered['sowb-pikaday']);
380 unset($wp_scripts->registered['sowb-pikaday-jquery']);
381 unset($wp_scripts->registered['yoast-seo-react-dependencies']);
382 unset($wp_scripts->registered['yoast-seo-search-appearance']);
383 unset($wp_scripts->registered['yoast-seo-wp-globals-backport']);
384 unset($wp_scripts->registered['yoast-seo-yoast-modal']);
385 unset($wp_scripts->registered['yoast-seo-help-center']);
386 unset($wp_scripts->registered['yoast-seo-admin-script']);
387 unset($wp_scripts->registered['yoast-seo-admin-media']);
388 unset($wp_scripts->registered['yoast-seo-bulk-editor']);
389 unset($wp_scripts->registered['yoast-seo-dismissible']);
390 unset($wp_scripts->registered['yoast-seo-admin-global-script']);
391 unset($wp_scripts->registered['yoast-seo-metabox']);
392 unset($wp_scripts->registered['yoast-seo-featured-image']);
393 unset($wp_scripts->registered['yoast-seo-admin-gsc']);
394 unset($wp_scripts->registered['yoast-seo-post-scraper']);
395 unset($wp_scripts->registered['yoast-seo-term-scraper']);
396 unset($wp_scripts->registered['yoast-seo-replacevar-plugin']);
397 unset($wp_scripts->registered['yoast-seo-shortcode-plugin']);
398 unset($wp_scripts->registered['yoast-seo-recalculate']);
399 unset($wp_scripts->registered['yoast-seo-primary-category']);
400 unset($wp_scripts->registered['yoast-seo-select2']);
401 unset($wp_scripts->registered['yoast-seo-select2-translations']);
402 unset($wp_scripts->registered['yoast-seo-configuration-wizard']);
403 unset($wp_scripts->registered['yoast-seo-polyfill']);
404 unset($wp_scripts->registered['yoast-seo-babel-polyfill']);
405 unset($wp_scripts->registered['yoast-seo-reindex-links']);
406 unset($wp_scripts->registered['yoast-seo-edit-page-script']);
407 unset($wp_scripts->registered['yoast-seo-quick-edit-handler']);
408 unset($wp_scripts->registered['yoast-seo-api']);
409 unset($wp_scripts->registered['yoast-seo-dashboard-widget']);
410 unset($wp_scripts->registered['yoast-seo-filter-explanation']);
411 unset($wp_scripts->registered['bootstrap-navigation']);
412 unset($wp_scripts->registered['bootstrap-skip-link-focus-fix']);
413 unset($wp_scripts->registered['bootstrap-form-validation']);*/
414}
415add_action('wp_enqueue_scripts', 'bootstrap_scripts');
416
417add_filter('jpeg_quality', function($arg){return 100;});
418
419/**
420 * Implement a Theme Options Page to backend.
421 */
422require get_template_directory() . '/inc/options-page.php';
423
424/**
425 * Implement the Custom Header feature.
426 */
427require get_template_directory() . '/inc/custom-header.php';
428
429/**
430 * Custom template tags for this theme.
431 */
432require get_template_directory() . '/inc/template-tags.php';
433
434/**
435 * Functions which enhance the theme by hooking into WordPress.
436 */
437require get_template_directory() . '/inc/template-functions.php';
438
439/**
440 * Customizer additions.
441 */
442require get_template_directory() . '/inc/customizer.php';
443
444/**
445 * Load Jetpack compatibility file.
446 */
447if (defined('JETPACK__VERSION')){
448 require get_template_directory() . '/inc/jetpack.php';
449}
450
451// Register Custom Header Navigation Walker
452if (!file_exists(get_template_directory() . '/class-wp-bootstrap-navwalker.php')){
453 // file does not exist... return an error.
454 return new WP_Error('class-wp-bootstrap-navwalker-missing', __( 'It appears the class-wp-bootstrap-navwalker.php file may be missing.', 'bootstrap'));
455} else {
456 // file exists... require it.
457 require_once get_template_directory() . '/class-wp-bootstrap-navwalker.php';
458}
459
460// Register Custom Footer Navigation Walker
461if (!file_exists(get_template_directory() . '/class-wp-bootstrap-navwalker-dropup.php')){
462 // file does not exist... return an error.
463 return new WP_Error('class-wp-bootstrap-navwalker-dropup-missing', __( 'It appears the class-wp-bootstrap-navwalker-dropup.php file may be missing.', 'bootstrap'));
464} else {
465 // file exists... require it.
466 require_once get_template_directory() . '/class-wp-bootstrap-navwalker-dropup.php';
467}
468
469/**
470 * Implement a Authors widget.
471 */
472require get_template_directory() . '/inc/widget-authors.php';
473
474// Add WP_Bootstrap_Navwalker to all menus
475function prefix_modify_nav_menu_args($args){
476 return array_merge($args, array(
477 'walker' => new WP_Bootstrap_Navwalker(),
478 ));
479}
480//add_filter( 'wp_nav_menu_args', 'prefix_modify_nav_menu_args' );
481
482/**
483 * Link all post thumbnails to the post permalink.
484 *
485 * @param string $html Post thumbnail HTML.
486 * @param int $post_id Post ID.
487 * @param int $post_image_id Post image ID.
488 * @param string $size Post thumbnail size name.
489 * @param array $attr Post thumbnail attribute.
490 * @return string Filtered post image HTML.
491 */
492function bootstrap_post_thumbnail_html($html, $post_id, $post_thumbnail_id, $size, $attr) {
493
494 $bg_colors = array(
495 'primary' => 'bg-primary',
496 'secondary' => 'bg-secondary',
497 'success' => 'bg-success',
498 'danger' => 'bg-danger',
499 'warning' => 'bg-warning',
500 'info' => 'bg-info',
501 'light' => 'bg-light',
502 'dark' => 'bg-dark',
503 'muted' => 'bg-muted',
504 'white' => 'bg-white'
505 );
506
507 $border_colors = array(
508 'primary' => 'border-primary',
509 'secondary' => 'border-secondary',
510 'success' => 'border-success',
511 'danger' => 'border-danger',
512 'warning' => 'border-warning',
513 'info' => 'border-info',
514 'light' => 'border-light',
515 'dark' => 'border-dark',
516 'muted' => 'border-muted',
517 'white' => 'border-white'
518 );
519
520 $text_colors = array(
521 'primary' => 'text-primary',
522 'secondary' => 'text-secondary',
523 'success' => 'text-success',
524 'danger' => 'text-danger',
525 'warning' => 'text-warning',
526 'info' => 'text-info',
527 'light' => 'text-light',
528 'dark' => 'text-dark',
529 'muted' => 'text-muted',
530 'white' => 'text-white'
531 );
532
533 $var_colors = array(
534 'primary' => 'var(--primary)',
535 'secondary' => 'var(--secondary)',
536 'success' => 'var(--success)',
537 'danger' => 'var(--danger)',
538 'warning' => 'var(--warning)',
539 'info' => 'var(--info)',
540 'light' => 'var(--light)',
541 'dark' => 'var(--dark)',
542 'muted' => 'var(--muted)',
543 'white' => 'var(--white)'
544 );
545
546 $post_thumbnail_bg_color = $bg_colors[get_theme_mod('post_thumbnail_bg_color', 'primary')]; //$bg_colors[$options['post_thumbnail_bg_color']];
547 $post_thumbnail_border_color = $border_colors[get_theme_mod('post_thumbnail_border_color', 'white')]; //$border_colors[$options['post_thumbnail_border_color']];
548
549 $post_thumbnail_img_border_color = $var_colors[get_theme_mod('post_thumbnail_img_border_color', 'dark')]; //$var_colors[$options['post_thumbnail_img_border_color']];
550
551 $post_thumbnail_caption_bg_color = $bg_colors[get_theme_mod('post_thumbnail_caption_bg_color', 'secondary')]; //$bg_colors[$options['post_thumbnail_caption_bg_color']];
552
553 $post_thumbnail_caption_color = $text_colors[get_theme_mod('post_thumbnail_caption_color', 'white')]; //$text_colors[$options['post_thumbnail_caption_color']];
554
555 $img = get_post($post_thumbnail_id);
556
557 $img_title = $img->post_title; // title, Title
558 $img_caption = $img->post_excerpt; // caption, Beschriftung
559 $img_content = $img->post_content; // description, Beschreibung
560 $img_name = $img->post_name; // slug, header-blackwhite
561
562 $img_src = wp_get_attachment_image_src($post_thumbnail_id, $size);
563
564 $img_alt = get_post_meta($post_thumbnail_id, '_wp_attachment_image_alt', true);
565
566 //$a_title = esc_attr(get_the_title($post_id));
567 $a_href = get_permalink($post_id);
568
569 $caption = $img_caption != '' ? '<div style="position: absolute;left: 0;right: 0;bottom: 0;height: 40px;text-align: center;border-radius: 0 0 15px 15px;border-left: 1px solid ' . $post_thumbnail_img_border_color . ';border-right: 1px solid ' . $post_thumbnail_img_border_color . ';border-bottom: 1px solid ' . $post_thumbnail_img_border_color . ';opacity: .8" class="' . $post_thumbnail_caption_bg_color . ' ' . $post_thumbnail_caption_color . ' m-3"><h4 style="line-height: 40px;font-style: italic;font-weight: bold;border-radius: 0 0 15px 15px;">' . $img_caption . '</h4></div>' : '';
570 $html = '<img src="' . $img_src['0'] . '" alt="' . $img_alt . '" style="width: 100%;height: auto;background-size: cover;border-radius: 15px;border: 1px solid ' . $post_thumbnail_img_border_color . ';" />';
571 $html = '<a href="' . $a_href . '" title="' . $img_title . '" style="display: inline-block;position: relative;width: 100%;border-radius: 15px;box-shadow: 0 0 4px rgba(0,0,0,.8);overflow: hidden;" class="' . $post_thumbnail_bg_color . ' border ' . $post_thumbnail_border_color . ' p-3">' . $html . $caption . '</a>';
572
573 return $img_src['0'] != '' ? $html : '';
574}
575add_filter('post_thumbnail_html', 'bootstrap_post_thumbnail_html', 99, 5);
576
577add_action('after_setup_theme', 'bootstrap_theme_setup');
578
579if (!function_exists('bootstrap_theme_setup')){
580 function bootstrap_theme_setup(){
581
582 /*
583 * Make theme available for translation.
584 * Translations can be filed in the /languages/ directory.
585 * If you're building a theme based on bootstrap, use a find and replace
586 * to change 'bootstrap' to the name of your theme in all the template files.
587 */
588 load_theme_textdomain('bootstrap', get_template_directory() . '/languages');
589
590 // Add default posts and comments RSS feed links to head.
591 add_theme_support('automatic-feed-links');
592
593 /*
594 * Let WordPress manage the document title.
595 * By adding theme support, we declare that this theme does not use a
596 * hard-coded <title> tag in the document head, and expect WordPress to
597 * provide it for us.
598 */
599 add_theme_support('title-tag');
600
601 /*
602 * Enable support for Post Thumbnails on posts and pages.
603 *
604 * @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
605 */
606 add_theme_support('post-thumbnails');
607
608 // This theme uses wp_nav_menu() in one location.
609 register_nav_menus( array(
610 'menu-1' => esc_html__('Primary', 'bootstrap'),
611 ) );
612 register_nav_menus(array(
613 'menu-2' => esc_html__('Secondary', 'bootstrap'),
614 ));
615 register_nav_menus(array(
616 'menu-3' => esc_html__('Titlebar', 'bootstrap'),
617 ));
618
619 /*
620 * Switch default core markup for search form, comment form, and comments
621 * to output valid HTML5.
622 */
623 add_theme_support('html5', array(
624 'search-form',
625 'comment-form',
626 'comment-list',
627 'gallery',
628 'caption',
629 ));
630
631 // Set up the WordPress core custom background feature.
632 add_theme_support('custom-background', apply_filters('bootstrap_custom_background_args', array(
633 'default-image' => '',
634 'default-preset' => 'default',
635 'default-position-x' => 'left',
636 'default-position-y' => 'top',
637 'default-size' => 'auto',
638 'default-repeat' => 'repeat',
639 'default-attachment' => 'scroll',
640 'default-color' => 'ffffff',
641 'wp-head-callback' => '_custom_background_cb',
642 'admin-head-callback' => '',
643 'admin-preview-callback' => '',
644 )));
645
646 // Add theme support for selective refresh for widgets.
647 add_theme_support('customize-selective-refresh-widgets');
648
649 /**
650 * Add support for core custom logo.
651 *
652 * @link https://codex.wordpress.org/Theme_Logo
653 */
654 add_theme_support('custom-logo', array(
655 'width' => 66,
656 'height' => 60,
657 'flex-width' => true,
658 'flex-height' => true,
659 'header-text' => array('site-title', 'site-description'),
660 ));
661
662 $query = new WP_Query('pagename=login-register');
663
664 if (!$query->have_posts()){
665
666 // Add the needed page using the data from the array above
667 $new_page_id = wp_insert_post(
668 array(
669 'post_content' => __('Click on the desired option.', 'bootstrap'),
670 'post_name' => 'login-register',
671 'post_title' => __('Login - Register', 'bootstrap'),
672 'post_status' => 'publish',
673 'post_type' => 'page',
674 'ping_status' => 'closed',
675 'comment_status' => 'closed',
676 'post_author' => get_user_by( 'id', 1 )->user_id,
677 'page_template' => 'page-login-register.php'
678 )
679 );
680
681 if ( $new_page_id && ! is_wp_error( $new_page_id ) ){
682 update_post_meta( $new_page_id, '_wp_page_template', 'page-authors.php' );
683 }
684
685 }
686
687 $query = new WP_Query('pagename=authors');
688
689 if (!$query->have_posts()){
690
691 // Add the needed page using the data from the array above
692 $new_page_id = wp_insert_post(
693 array(
694 'post_content' => __('Click on the desired option.', 'bootstrap'),
695 'post_name' => 'authors',
696 'post_title' => __('Authors', 'bootstrap'),
697 'post_status' => 'publish',
698 'post_type' => 'page',
699 'ping_status' => 'closed',
700 'comment_status' => 'closed',
701 'post_author' => get_user_by( 'id', 1 )->user_id,
702 'page_template' => 'page-authors.php'
703 )
704 );
705
706 if ( $new_page_id && ! is_wp_error( $new_page_id ) ){
707 update_post_meta( $new_page_id, '_wp_page_template', 'page-authors.php' );
708 }
709
710 }
711
712 add_action( 'init', 'bootstrap_init' );
713
714 add_action('wp_login_failed', 'custom_login_failed');
715 add_filter('authenticate', 'verify_user_pass', 1, 3);
716 add_filter('login_redirect', 'redirect_after_login', 10, 3 );
717 add_action('wp_logout', 'logout_redirect');
718
719 add_action('login_form_login', 'redirect_to_custom_login');
720 add_action('login_form_register', 'redirect_to_custom_register');
721 add_action('login_form_lostpassword', 'redirect_to_custom_lostpassword' );
722 add_action('login_form_rp', 'redirect_to_custom_password_reset');
723 add_action('login_form_resetpass', 'redirect_to_custom_password_reset');
724
725 // Handlers for form posting actions
726 add_action('login_form_register', 'do_register_user');
727 add_action('login_form_lostpassword', 'do_password_lost');
728 add_action('login_form_rp', 'do_password_reset');
729 add_action('login_form_resetpass', 'do_password_reset');
730 }
731}
732
733/********* Bootstrap Init ***********/
734if (!function_exists('bootstrap_init')){
735 function bootstrap_init(){
736
737 $page_viewed = basename($_SERVER['REQUEST_URI']);
738
739 if($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
740 $login_page = home_url('/login-register/');
741 wp_redirect($login_page);
742 exit;
743 }
744
745 if($page_viewed == "wp-login.php?action=register" && $_SERVER['REQUEST_METHOD'] == 'POST') {
746 $login_page = home_url('/login-register/');
747 wp_redirect($login_page);
748 exit;
749 }
750
751 if (!current_user_can('edit_posts') && ! current_user_can('edit_pages')){
752 return;
753 }
754
755 if (get_user_option('rich_editing') !== 'true'){
756 return;
757 }
758
759 add_filter('mce_external_plugins', 'bootstrap_add_buttons');
760 add_filter('mce_buttons', 'bootstrap_register_buttons');
761 }
762}
763
764if (!function_exists('bootstrap_add_buttons')){
765 function bootstrap_add_buttons($plugin_array){
766 $plugin_array['mybutton'] = get_template_directory_uri() . '/js/tinymce_buttons_bootstrap.js';
767 $plugin_array['dashicons'] = get_template_directory_uri() . '/js/tinymce_buttons_dashicons.js';
768 $plugin_array['fontawesome'] = get_template_directory_uri() . '/js/tinymce_buttons_fontawesome.js';
769 return $plugin_array;
770 }
771}
772
773if (!function_exists('bootstrap_register_buttons')){
774 function bootstrap_register_buttons($buttons){
775 array_push($buttons, 'mybutton');
776 array_push($buttons, 'dashicons');
777 array_push($buttons, 'fontawesome');
778 return $buttons;
779 }
780}
781
782/* Where to go if a login failed */
783function custom_login_failed(){
784 $login_page = home_url('/login-register/');
785 wp_redirect($login_page . '?login=failed');
786 exit;
787}
788
789/* Where to go if any of the fields were empty */
790function verify_user_pass($user, $username, $password){
791 $login_page = home_url('/login-register/');
792 if($username == "" || $password == ""){
793 wp_redirect($login_page . "?login=empty_username_or_password&user_login=" . $username);
794 exit;
795 }
796}
797
798/**
799 * Returns the URL to which the user should be redirected after the (successful) login.
800 *
801 * @param string $redirect_to The redirect destination URL.
802 * @param string $requested_redirect_to The requested redirect destination URL passed as a parameter.
803 * @param WP_User|WP_Error $user WP_User object if login was successful, WP_Error object otherwise.
804 *
805 * @return string Redirect URL
806 */
807function redirect_after_login($redirect_to, $requested_redirect_to, $user){
808 $redirect_url = home_url();
809 if (!isset($user->ID)){
810 return $redirect_url;
811 }
812 if (user_can($user, 'manage_options')){
813 // Use the redirect_to parameter if one is set, otherwise redirect to admin dashboard.
814 if ($requested_redirect_to == ''){
815 $redirect_url = admin_url();
816 } else {
817 $redirect_url = $redirect_to;
818 }
819 } else {
820 // Non-admin users always go to their account page after login
821 $redirect_url = home_url('/login-register/');
822 }
823 return wp_validate_redirect($redirect_url, home_url());
824}
825
826/* What to do on logout */
827function logout_redirect(){
828 $login_page = home_url('/login-register/');
829 wp_redirect($login_page . "?login=false");
830 exit;
831}
832
833/**
834 * Validates and then completes the new user signup process if all went well.
835 *
836 * @param string $email The new user's email address
837 * @param string $first_name The new user's first name
838 * @param string $last_name The new user's last name
839 *
840 * @return int|WP_Error The id of the user that was created, or error if failed.
841 */
842function register_user($email, $first_name, $last_name){
843 $errors = new WP_Error();
844 // Email address is used as both username and email. It is also the only
845 // parameter we need to validate
846 if (!is_email( $email)){
847 $errors->add('email', get_error_message('email'));
848 return $errors;
849 }
850 if (username_exists($email) || email_exists($email)){
851 $errors->add('email_exists', get_error_message('email_exists'));
852 return $errors;
853 }
854 // Generate the password so that the subscriber will have to check email...
855 $password = wp_generate_password(12, false);
856 $user_data = array(
857 'user_login' => $email,
858 'user_email' => $email,
859 'user_pass' => $password,
860 'first_name' => $first_name,
861 'last_name' => $last_name,
862 'nickname' => $first_name,
863 );
864 $user_id = wp_insert_user($user_data);
865 wp_new_user_notification($user_id, $password);
866 return $user_id;
867}
868
869/**
870 * Checks that the reCAPTCHA parameter sent with the registration
871 * request is valid.
872 *
873 * @return bool True if the CAPTCHA is OK, otherwise false.
874 */
875function verify_recaptcha(){
876 // This field is set by the recaptcha widget if check is successful
877 if (isset($_POST['g-recaptcha-response'])){
878 $captcha_response = $_POST['g-recaptcha-response'];
879 } else {
880 return false;
881 }
882 // Verify the captcha response from Google
883 $response = wp_remote_post(
884 'https://www.google.com/recaptcha/api/siteverify',
885 array(
886 'body' => array(
887 'secret' => get_option('bootstrap-recaptcha-secret-key'),
888 'response' => $captcha_response
889 )
890 )
891 );
892 $success = false;
893 if ($response && is_array($response)){
894 $decoded_response = json_decode($response['body']);
895 $success = $decoded_response->success;
896 }
897 return $success;
898}
899
900/**
901 * Redirects the user to the correct page depending on whether he / she
902 * is an admin or not.
903 *
904 * @param string $redirect_to An optional redirect_to URL for admin users
905 */
906function redirect_logged_in_user($redirect_to = null){
907 $user = wp_get_current_user();
908 if (user_can($user, 'manage_options')){
909 if ($redirect_to){
910 wp_safe_redirect($redirect_to);
911 } else {
912 wp_redirect(admin_url());
913 }
914 } else {
915 wp_redirect(home_url('/login-register/'));
916 }
917}
918
919/**
920 * Finds and returns a matching error message for the given error code.
921 *
922 * @param string $error_code The error code to look up.
923 *
924 * @return string An error message.
925 */
926function get_error_message($error_code) {
927 switch ($error_code) {
928 // Login errors
929 case 'failed':
930 return __( 'Your username and password are failed to log in!', 'bootstrap' );
931 case 'empty_username':
932 return __( 'You do have an email address, right?', 'bootstrap' );
933 case 'empty_password':
934 return __( 'You need to enter a password to login.', 'bootstrap' );
935 case 'empty_username_or_password':
936 return __( 'You need to enter a username and password to login.', 'bootstrap' );
937 case 'invalid_username':
938 return __(
939 "We don't have any users with that email address. Maybe you used a different one when signing up?",
940 'bootstrap'
941 );
942 case 'incorrect_password':
943 $err = __("The password you entered wasn't quite right. <a href='%s'>Did you forget your password</a>?", 'bootstrap');
944 return sprintf( $err, wp_lostpassword_url() );
945 // Registration errors
946 case 'email':
947 return __( 'The email address you entered is not valid.', 'bootstrap' );
948 case 'email_exists':
949 return __( 'An account exists with this email address.', 'bootstrap' );
950 case 'closed':
951 return __( 'Registering new users is currently not allowed.', 'bootstrap' );
952 case 'captcha':
953 return __( 'The Google reCAPTCHA check failed. Are you a robot?', 'bootstrap' );
954 // Lost password
955 case 'empty_username':
956 return __( 'You need to enter your email address to continue.', 'bootstrap' );
957 case 'invalid_email':
958 case 'invalidcombo':
959 return __( 'There are no users registered with this email address.', 'bootstrap' );
960 // Reset password
961 case 'expiredkey':
962 case 'invalidkey':
963 return __( 'The password reset link you used is not valid anymore.', 'bootstrap' );
964 case 'password_reset_mismatch':
965 return __( "The two passwords you entered don't match.", 'bootstrap' );
966 case 'password_reset_empty':
967 return __( "Sorry, we don't accept empty passwords.", 'bootstrap' );
968 default:
969 break;
970 }
971 return __( 'An unknown error occurred. Please try again later.', 'bootstrap' );
972}
973
974/**
975 * Redirect the user to the custom login page instead of wp-login.php.
976 */
977function redirect_to_custom_login(){
978 if ($_SERVER['REQUEST_METHOD'] == 'GET'){
979 if (is_user_logged_in()){
980 redirect_logged_in_user();
981 exit;
982 }
983 // The rest are redirected to the login page
984 $login_url = home_url('/login-register/');
985 if (!empty($_REQUEST['redirect_to'])){
986 $login_url = add_query_arg('redirect_to', $_REQUEST['redirect_to'], $login_url);
987 }
988 if (!empty($_REQUEST['checkemail'])){
989 $login_url = add_query_arg('checkemail', $_REQUEST['checkemail'], $login_url);
990 }
991 wp_redirect($login_url);
992 exit;
993 }
994}
995
996/**
997 * Redirects the user to the custom registration page instead
998 * of wp-login.php?action=register.
999 */
1000function redirect_to_custom_register(){
1001 if ('GET' == $_SERVER['REQUEST_METHOD']){
1002 if (is_user_logged_in()) {
1003 redirect_logged_in_user();
1004 } else {
1005 wp_redirect(home_url('/login-register/?tab=tab2_login'));
1006 }
1007 exit;
1008 }
1009}
1010
1011/**
1012 * Redirects the user to the custom "Forgot your password?" page instead of
1013 * wp-login.php?action=lostpassword.
1014 */
1015function redirect_to_custom_lostpassword(){
1016 if ('GET' == $_SERVER['REQUEST_METHOD']){
1017 if (is_user_logged_in()) {
1018 redirect_logged_in_user();
1019 exit;
1020 }
1021 wp_redirect(home_url('/login-register/?reset=true&tab=tab3_login'));
1022 exit;
1023 }
1024}
1025
1026/**
1027 * Redirects to the custom password reset page, or the login page
1028 * if there are errors.
1029 */
1030function redirect_to_custom_password_reset() {
1031 if ('GET' == $_SERVER['REQUEST_METHOD']) {
1032 // Verify key / login combo
1033 $user = check_password_reset_key($_REQUEST['key'], $_REQUEST['login']);
1034 if (!$user || is_wp_error($user)){
1035 if ($user && $user->get_error_code() === 'expired_key'){
1036 wp_redirect(home_url('/login-register/?login=expiredkey'));
1037 } else {
1038 wp_redirect(home_url('/login-register/?login=invalidkey'));
1039 }
1040 exit;
1041 }
1042 $redirect_url = home_url('/login-register/');
1043 $redirect_url = add_query_arg('login', esc_attr($_REQUEST['login']), $redirect_url);
1044 $redirect_url = add_query_arg('key', esc_attr($_REQUEST['key']), $redirect_url);
1045 wp_redirect($redirect_url);
1046 exit;
1047 }
1048}
1049
1050/**
1051 * Handles the registration of a new user.
1052 *
1053 * Used through the action hook "login_form_register" activated on wp-login.php
1054 * when accessed through the registration action.
1055 */
1056function do_register_user() {
1057 if ('POST' == $_SERVER['REQUEST_METHOD']) {
1058 $redirect_url = home_url('/login-register/');
1059 if (!get_option('users_can_register')) {
1060 // Registration closed, display error
1061 $redirect_url = add_query_arg('register-errors', 'closed', $redirect_url) . "&tab=tab2_login&user_login=" . sanitize_text_field($_POST['user_login']);
1062 } /*elseif (!verify_recaptcha()) {
1063 // Recaptcha check failed, display error
1064 $redirect_url = add_query_arg('register-errors', 'captcha', $redirect_url);
1065 }*/ else {
1066 $email = $_POST['user_email'];
1067 $first_name = sanitize_text_field($_POST['user_login']);
1068 $last_name = sanitize_text_field($_POST['last_name']);
1069 $result = register_user($email, $first_name, $last_name);
1070 if (is_wp_error($result)) {
1071 // Parse errors into a string and append as parameter to redirect
1072 $errors = join(',', $result->get_error_codes());
1073 $redirect_url = add_query_arg('register-errors', $errors, $redirect_url) . "&tab=tab2_login&user_login=" . sanitize_text_field($_POST['user_login']);
1074 } else {
1075 // Success, redirect to login page.
1076 $redirect_url = home_url('/login-register/');
1077 $redirect_url = add_query_arg('registered', $email, $redirect_url) . "&tab=tab2_login";
1078 }
1079 }
1080 wp_redirect($redirect_url);
1081 exit;
1082 }
1083}
1084
1085/**
1086 * Initiates password reset.
1087 */
1088function do_password_lost() {
1089 if ('POST' == $_SERVER['REQUEST_METHOD']) {
1090 $errors = retrieve_password();
1091 if (is_wp_error($errors)) {
1092 // Errors found
1093 $redirect_url = home_url('/login-register/');
1094 $redirect_url = add_query_arg('errors', join(',', $errors->get_error_codes()), $redirect_url) . "&tab=tab3_login";
1095 } else {
1096 // Email sent
1097 $redirect_url = home_url('/login-register/');
1098 $redirect_url = add_query_arg('checkemail', 'confirm', $redirect_url) . "&tab=tab3_login";
1099 if (!empty($_REQUEST['redirect_to'])) {
1100 $redirect_url = $_REQUEST['redirect_to'];
1101 }
1102 }
1103 wp_safe_redirect($redirect_url);
1104 exit;
1105 }
1106}
1107
1108/**
1109 * Resets the user's password if the password reset form was submitted.
1110 */
1111function do_password_reset() {
1112 if ('POST' == $_SERVER['REQUEST_METHOD']) {
1113 $rp_key = $_REQUEST['rp_key'];
1114 $rp_login = $_REQUEST['rp_login'];
1115 $user = check_password_reset_key($rp_key, $rp_login);
1116 if (!$user || is_wp_error($user)) {
1117 if ($user && $user->get_error_code() === 'expired_key') {
1118 wp_redirect(home_url('/login-register/?login=expiredkey'));
1119 } else {
1120 wp_redirect(home_url('/login-register/?login=invalidkey'));
1121 }
1122 exit;
1123 }
1124 if (isset($_POST['pass1'])) {
1125 if ($_POST['pass1'] != $_POST['pass2']) {
1126 // Passwords don't match
1127 $redirect_url = home_url('/login-register/');
1128 $redirect_url = add_query_arg('key', $rp_key, $redirect_url);
1129 $redirect_url = add_query_arg('login', $rp_login, $redirect_url);
1130 $redirect_url = add_query_arg('error', 'password_reset_mismatch', $redirect_url);
1131 wp_redirect($redirect_url);
1132 exit;
1133 }
1134 if (empty($_POST['pass1'])) {
1135 // Password is empty
1136 $redirect_url = home_url('/login-register/');
1137 $redirect_url = add_query_arg('key', $rp_key, $redirect_url);
1138 $redirect_url = add_query_arg('login', $rp_login, $redirect_url);
1139 $redirect_url = add_query_arg('error', 'password_reset_empty', $redirect_url);
1140 wp_redirect($redirect_url);
1141 exit;
1142 }
1143 // Parameter checks OK, reset password
1144 reset_password($user, $_POST['pass1']);
1145 wp_redirect(home_url('/login-register/?password=changed'));
1146 } else {
1147 echo "Invalid request.";
1148 }
1149 exit;
1150 }
1151}
1152
1153function allow_tag_attribute($settings) {
1154
1155 $settings['extended_valid_elements'] = ""
1156. "a[accesskey|charset|class|coords|dir<ltr?rtl|href|hreflang|id|lang|name"
1157 . "|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
1158 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rel|rev"
1159 . "|shape<circle?default?poly?rect|style|tabindex|title|target|type],"
1160. "abbr[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1161 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1162 . "|title],"
1163. "acronym[class|dir<ltr?rtl|id|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1164 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1165 . "|title],"
1166. "address[class|align|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1167 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1168 . "|onmouseup|style|title],"
1169. "applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase"
1170 . "|height|hspace|id|name|object|style|title|vspace|width],"
1171. "area[accesskey|alt|class|coords|dir<ltr?rtl|href|id|lang|nohref<nohref"
1172 . "|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
1173 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup"
1174 . "|shape<circle?default?poly?rect|style|tabindex|title|target],"
1175. "base[href|target],"
1176. "basefont[color|face|id|size],"
1177. "bdo[class|dir<ltr?rtl|id|lang|style|title],"
1178. "big[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1179 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1180 . "|title],"
1181. "blockquote[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
1182 . "|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
1183 . "|onmouseover|onmouseup|style|title],"
1184. "body[alink|background|bgcolor|class|dir<ltr?rtl|id|lang|link|onclick"
1185 . "|ondblclick|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove"
1186 . "|onmouseout|onmouseover|onmouseup|onunload|style|title|text|vlink],"
1187. "br[class|clear<all?left?none?right|id|style|title],"
1188. "button[accesskey|class|dir<ltr?rtl|disabled<disabled|id|lang|name|onblur"
1189 . "|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup|onmousedown"
1190 . "|onmousemove|onmouseout|onmouseover|onmouseup|style|tabindex|title|type"
1191 . "|value],"
1192. "caption[align<bottom?left?right?top|class|dir<ltr?rtl|id|lang|onclick"
1193 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1194 . "|onmouseout|onmouseover|onmouseup|style|title],"
1195. "center[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1196 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1197 . "|title],"
1198. "cite[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1199 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1200 . "|title],"
1201. "code[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1202 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1203 . "|title],"
1204. "col[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
1205 . "|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
1206 . "|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
1207 . "|valign<baseline?bottom?middle?top|width],"
1208. "colgroup[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl"
1209 . "|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
1210 . "|onmousemove|onmouseout|onmouseover|onmouseup|span|style|title"
1211 . "|valign<baseline?bottom?middle?top|width],"
1212. "dd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1213 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
1214. "del[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1215 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1216 . "|onmouseup|style|title],"
1217. "dfn[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1218 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1219 . "|title],"
1220. "dir[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1221 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1222 . "|onmouseup|style|title],"
1223. "div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1224 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1225 . "|onmouseout|onmouseover|onmouseup|style|title],"
1226. "dl[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1227 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1228 . "|onmouseup|style|title],"
1229. "dt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1230 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
1231. "em/i[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1232 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1233 . "|title],"
1234. "fieldset[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1235 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1236 . "|title],"
1237. "font[class|color|dir<ltr?rtl|face|id|lang|size|style|title],"
1238. "form[accept|accept-charset|action|class|dir<ltr?rtl|enctype|id|lang"
1239 . "|method<get?post|name|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1240 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onreset|onsubmit"
1241 . "|style|title|target|novalidate<novalidate],"
1242. "frame[class|frameborder|id|longdesc|marginheight|marginwidth|name"
1243 . "|noresize<noresize|scrolling<auto?no?yes|src|style|title],"
1244. "frameset[class|cols|id|onload|onunload|rows|style|title],"
1245. "h1[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1246 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1247 . "|onmouseout|onmouseover|onmouseup|style|title],"
1248. "h2[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1249 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1250 . "|onmouseout|onmouseover|onmouseup|style|title],"
1251. "h3[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1252 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1253 . "|onmouseout|onmouseover|onmouseup|style|title],"
1254. "h4[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1255 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1256 . "|onmouseout|onmouseover|onmouseup|style|title],"
1257. "h5[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1258 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1259 . "|onmouseout|onmouseover|onmouseup|style|title],"
1260. "h6[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1261 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1262 . "|onmouseout|onmouseover|onmouseup|style|title],"
1263. "head[dir<ltr?rtl|lang|profile],"
1264. "hr[align<center?left?right|class|dir<ltr?rtl|id|lang|noshade<noshade|onclick"
1265 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1266 . "|onmouseout|onmouseover|onmouseup|size|style|title|width],"
1267. "html[dir<ltr?rtl|lang|version],"
1268. "iframe[align<bottom?left?middle?right?top|class|frameborder|height|id"
1269 . "|longdesc|marginheight|marginwidth|name|scrolling<auto?no?yes|src|style"
1270 . "|title|width],"
1271. "img[align<bottom?left?middle?right?top|alt|border|class|dir<ltr?rtl|height"
1272 . "|hspace|id|ismap<ismap|lang|longdesc|name|onclick|ondblclick|onkeydown"
1273 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1274 . "|onmouseup|src|style|title|usemap|vspace|width],"
1275. "input[accept|accesskey|align<bottom?left?middle?right?top|alt"
1276 . "|checked<checked|class|dir<ltr?rtl|disabled<disabled|id|ismap<ismap|lang"
1277 . "|minlength|maxlength|min|max|step|name|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress"
1278 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect|onchange"
1279 . "|readonly<readonly|multiple<multiple|size|src|style|tabindex|title"
1280 . "|type<search?tel?url?email?date?datetime-local?week?month?time?number?range?color?button?checkbox?file?hidden?image?password?radio?reset?submit?text"
1281 . "|usemap|value|placeholder|required<required|pattern],"
1282. "ins[cite|class|datetime|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1283 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1284 . "|onmouseup|style|title],"
1285. "isindex[class|dir<ltr?rtl|id|lang|prompt|style|title],"
1286. "kbd[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1287 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1288 . "|title],"
1289. "label[accesskey|class|dir<ltr?rtl|for|id|lang|onblur|onclick|ondblclick"
1290 . "|onfocus|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
1291 . "|onmouseover|onmouseup|style|title],"
1292. "legend[align<bottom?left?right?top|accesskey|class|dir<ltr?rtl|id|lang"
1293 . "|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1294 . "|onmouseout|onmouseover|onmouseup|style|title],"
1295. "li[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1296 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title|type"
1297 . "|value],"
1298. "link[charset|class|dir<ltr?rtl|href|hreflang|id|lang|media|onclick"
1299 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1300 . "|onmouseout|onmouseover|onmouseup|rel|rev|style|title|target|type],"
1301. "map[class|dir<ltr?rtl|id|lang|name|onclick|ondblclick|onkeydown|onkeypress"
1302 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1303 . "|title],"
1304. "menu[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1305 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1306 . "|onmouseup|style|title],"
1307. "meta[content|dir<ltr?rtl|http-equiv|lang|name|scheme],"
1308. "noframes[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1309 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1310 . "|title],"
1311. "noscript[class|dir<ltr?rtl|id|lang|style|title],"
1312. "object[align<bottom?left?middle?right?top|archive|border|class|classid"
1313 . "|codebase|codetype|data|declare|dir<ltr?rtl|height|hspace|id|lang|name"
1314 . "|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1315 . "|onmouseout|onmouseover|onmouseup|standby|style|tabindex|title|type|usemap"
1316 . "|vspace|width],"
1317. "ol[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1318 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1319 . "|onmouseup|start|style|title|type],"
1320. "optgroup[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick"
1321 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1322 . "|onmouseout|onmouseover|onmouseup|style|title],"
1323. "option[class|dir<ltr?rtl|disabled<disabled|id|label|lang|onclick|ondblclick"
1324 . "|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
1325 . "|onmouseover|onmouseup|selected<selected|style|title|value],"
1326. "p[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick"
1327 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1328 . "|onmouseout|onmouseover|onmouseup|style|title],"
1329. "param[id|name|type|value|valuetype<DATA?OBJECT?REF],"
1330. "pre/listing/plaintext/xmp[align|class|dir<ltr?rtl|id|lang|onclick|ondblclick"
1331 . "|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout"
1332 . "|onmouseover|onmouseup|style|title|width],"
1333. "q[cite|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1334 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1335 . "|title],"
1336. "s[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1337 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
1338. "samp[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1339 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1340 . "|title],"
1341. "script[charset|defer|language|src|type],"
1342. "select[class|dir<ltr?rtl|disabled<disabled|id|lang|multiple<multiple|name"
1343 . "|onblur|onchange|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
1344 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|size|style"
1345 . "|tabindex|title],"
1346. "small[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1347 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1348 . "|title],"
1349. "span[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1350 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1351 . "|onmouseup|style|title],"
1352. "strike[class|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1353 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1354 . "|onmouseup|style|title],"
1355. "strong/b[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1356 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1357 . "|title],"
1358. "style[dir<ltr?rtl|lang|media|title|type],"
1359. "sub[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1360 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1361 . "|title],"
1362. "sup[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1363 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1364 . "|title],"
1365. "table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|class"
1366 . "|dir<ltr?rtl|frame|height|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1367 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|rules"
1368 . "|style|summary|title|width],"
1369. "tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rtl|id"
1370 . "|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
1371 . "|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
1372 . "|valign<baseline?bottom?middle?top],"
1373. "td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
1374 . "|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
1375 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1376 . "|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
1377 . "|style|title|valign<baseline?bottom?middle?top|width],"
1378. "textarea[accesskey|class|cols|dir<ltr?rtl|disabled<disabled|id|lang|name"
1379 . "|onblur|onclick|ondblclick|onfocus|onkeydown|onkeypress|onkeyup"
1380 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onselect"
1381 . "|readonly<readonly|rows|style|tabindex|title],"
1382. "tfoot[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
1383 . "|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
1384 . "|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
1385 . "|valign<baseline?bottom?middle?top],"
1386. "th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff|class"
1387 . "|colspan|dir<ltr?rtl|headers|height|id|lang|nowrap<nowrap|onclick"
1388 . "|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove"
1389 . "|onmouseout|onmouseover|onmouseup|rowspan|scope<col?colgroup?row?rowgroup"
1390 . "|style|title|valign<baseline?bottom?middle?top|width],"
1391. "thead[align<center?char?justify?left?right|char|charoff|class|dir<ltr?rtl|id"
1392 . "|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown"
1393 . "|onmousemove|onmouseout|onmouseover|onmouseup|style|title"
1394 . "|valign<baseline?bottom?middle?top],"
1395. "title[dir<ltr?rtl|lang],"
1396. "tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class"
1397 . "|rowspan|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1398 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1399 . "|title|valign<baseline?bottom?middle?top],"
1400. "tt[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1401 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
1402. "u[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup"
1403 . "|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title],"
1404. "ul[class|compact<compact|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown"
1405 . "|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover"
1406 . "|onmouseup|style|title|type],"
1407. "var[class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress"
1408 . "|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style"
1409 . "|title]";
1410 return $settings;
1411}
1412add_filter('tiny_mce_before_init', 'allow_tag_attribute');
1413remove_filter('the_content', 'wpautop'); // Autoformatierung im HTML-Editor ausschalten
1414remove_filter('the_excerpt', 'wpautop');
1415remove_filter('the_content', 'wptexturize'); // wptexturize ersetzt bestimmte Zeichen: aus zwei Bindestrichen zum Beispiel (--) wird ein (langer) Gedankenstrich –.
1416
1417function override_mce_options($initArray) {
1418 $opts = '*[*]';
1419 $initArray['valid_elements'] = $opts;
1420 $initArray['extended_valid_elements'] = $opts;
1421 return $initArray;
1422}
1423add_filter('tiny_mce_before_init', 'override_mce_options');
1424
1425add_action ('after_wp_tiny_mce', 'bootstrap_tinymce_extra_vars');
1426if (!function_exists('bootstrap_tinymce_extra_vars')){
1427 function bootstrap_tinymce_extra_vars() { ?>
1428
1429 <div id="bootstrap-dialog" class="hidden" style="max-width: 800px">
1430
1431 <h1>Select a type</h1>
1432
1433 <div id="bootstrap-tabs">
1434 <ul>
1435 <li style="display: inline-block;width: 220px"><a href="#bootstrap-layout">Layout</a></li>
1436 <li style="display: inline-block;width: 220px"><a href="#bootstrap-content">Content</a></li>
1437 <li style="display: inline-block;width: 220px"><a href="#bootstrap-component">Component</a></li>
1438 </ul>
1439 <div id="bootstrap-layout">
1440 <p><strong>Layout-Containers</strong></p>
1441 <ol style="padding: 5px 0px 0px 15px;list-style: normal">
1442 <li><a href="#" id="bootstrap-layout-containers-container" role="button">Container</a></li>
1443 <li><a href="#" id="bootstrap-layout-containers-container-fluid" role="button">Container-Fluid</a></li>
1444 </ol>
1445 <p><strong>Layout-Grid</strong></p>
1446 <ol style="padding: 5px 0px 0px 15px;list-style: normal">
1447 <li><a href="#" id="bootstrap-layout-grid-row" role="button">Row</a></li>
1448 <li><a href="#" id="bootstrap-layout-grid-col" role="button">Col</a></li>
1449 <li><a href="#" id="bootstrap-layout-grid-w-100" role="button">W-100</a></li>
1450 </ol>
1451 </div>
1452 <div id="bootstrap-content">
1453 <p><strong>Content</strong></p>
1454 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1455 <li><a href="#" id="bootstrap-content-h1-6" role="button">H1-6 - Headings</a></li>
1456 <li><a href="#" id="bootstrap-content-ul-ol" role="button">UL | OL - Lists (li)</a></li>
1457 <li><a href="#" id="bootstrap-content-dl" role="button">Dl - Definitions-list (Dt, Dd)</a></li>
1458 <li><a href="#" id="bootstrap-content-pre" role="button">PRE - Preformatted text</a></li>
1459 <li>
1460 <strong style="cursor: pointer" onclick="jQuery('#bootstrap-forms').toggle()"><a href="#">Form-Elements</a></strong>
1461 <ol id="bootstrap-forms" style="display: none;padding: 5px 0px 0px 15px;list-style: circle">
1462 <li><a href="#" id="bootstrap-content-form-fieldset" role="button">Fieldset</a></li>
1463 <li><a href="#" id="bootstrap-content-form-legend" role="button">Legend</a></li>
1464 <li><a href="#" id="bootstrap-content-form-label" role="button">Label</a></li>
1465 <li><a href="#" id="bootstrap-content-form-input" role="button">Input</a></li>
1466 <li><a href="#" id="bootstrap-content-form-select" role="button">Select</a></li>
1467 <li><a href="#" id="bootstrap-content-form-textarea" role="button">Textarea</a></li>
1468 <li><a href="#" id="bootstrap-content-form-button" role="button">Button</a></li>
1469 </ol>
1470 </li>
1471 <li><a href="#" id="bootstrap-content-main" role="button">Main</a></li>
1472 <li><a href="#" id="bootstrap-content-header" role="button">Header</a></li>
1473 <li><a href="#" id="bootstrap-content-footer" role="button">Footer</a></li>
1474 <li><a href="#" id="bootstrap-content-section" role="button">Section</a></li>
1475 <li><a href="#" id="bootstrap-content-aside" role="button">Aside</a></li>
1476 <li><a href="#" id="bootstrap-content-nav" role="button">Nav</a></li>
1477 <li><a href="#" id="bootstrap-content-address" role="button">Address</a></li>
1478 <li><a href="#" id="bootstrap-content-blockquote" role="button">Blockquote</a></li>
1479 <li><a href="#" id="bootstrap-content-abbr" role="button">Abbr - <abbr>Example</abbr></a></li>
1480 <li><a href="#" id="bootstrap-content-cite" role="button">Cite - <cite>Example</cite></a></li>
1481 <li><a href="#" id="bootstrap-content-code" role="button">Code - <code>Example</code></a></li>
1482 <li><a href="#" id="bootstrap-content-var" role="button">Var - <var>Example</var></a></li>
1483 <li><a href="#" id="bootstrap-content-kbd" role="button">Kbd - <kbd>Keyboard</kbd></a></li>
1484 <li><a href="#" id="bootstrap-content-samp" role="button">Samp - <samp>Sample</samp></a></li>
1485 <li><a href="#" id="bootstrap-content-summary" role="button">Summary</a></li>
1486 <li><a href="#" id="bootstrap-content-mark" role="button">Mark - <mark>Example</mark></a></li>
1487 <li><a href="#" id="bootstrap-content-del" role="button">Del - <del>Delete</del></a></li>
1488 <li><a href="#" id="bootstrap-content-s" role="button">S - <s>Strike</s></a></li>
1489 <li><a href="#" id="bootstrap-content-ins" role="button">Ins - <ins>Insert</ins></a></li>
1490 <li><a href="#" id="bootstrap-content-u" role="button">U - <u>Underline</u></a></li>
1491 <li><a href="#" id="bootstrap-content-small" role="button">Small - <small>Example</small></a></li>
1492 <li><a href="#" id="bootstrap-content-strong" role="button">Strong - <strong>Example</strong></a></li>
1493 <li><a href="#" id="bootstrap-content-em" role="button">Em - <em>Cursive</em></a></li>
1494 <li><a href="#" id="bootstrap-content-i" role="button">I - <i>Italic</i></a></li>
1495 <li><a href="#" id="bootstrap-content-img" role="button">Img - Image</a></li>
1496 <li><a href="#" id="bootstrap-content-picture" role="button">Picture - Picture</a></li>
1497 <li><a href="#" id="bootstrap-content-table" role="button">Table - Table</a></li>
1498 <li><a href="#" id="bootstrap-content-tr" role="button">Tr - Table-Row</a></li>
1499 <li><a href="#" id="bootstrap-content-th" role="button">Th - Table-Head</a></li>
1500 <li><a href="#" id="bootstrap-content-td" role="button">Td - Table-Data</a></li>
1501 <li><a href="#" id="bootstrap-content-figure" role="button">Figure - Figure (Img, Figcaption)</a></li>
1502 </ol>
1503 </div>
1504 <div id="bootstrap-component">
1505 <p><strong>Component</strong></p>
1506 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1507 <li><a href="#" id="bootstrap-component-alerts" role="button">Alerts</a></li>
1508 <li><a href="#" id="bootstrap-component-badge" role="button">Badge</a></li>
1509 <li><a href="#" id="bootstrap-component-breadcrumb" role="button">Breadcrumb</a></li>
1510 <li><a href="#" id="bootstrap-component-buttons" role="button">Buttons</a></li>
1511 <li><a href="#" id="bootstrap-component-button-group" role="button">Button group</a></li>
1512 <li><a href="#" id="bootstrap-component-card" role="button">Card</a></li>
1513 <li><a href="#" id="bootstrap-component-carousel" role="button">Carousel</a></li>
1514 <li><a href="#" id="bootstrap-component-collapse" role="button">Collapse</a></li>
1515 <li><a href="#" id="bootstrap-component-dropdowns" role="button">Dropdowns</a></li>
1516 <li><a href="#" id="bootstrap-component-forms" role="button">Forms</a></li>
1517 <li><a href="#" id="bootstrap-component-input-group" role="button">Input group</a></li>
1518 <li><a href="#" id="bootstrap-component-jumbotron" role="button">Jumbotron</a></li>
1519 <li><a href="#" id="bootstrap-component-list-group" role="button">List group</a></li>
1520 <li><a href="#" id="bootstrap-component-modal" role="button">Modal</a></li>
1521 <li><a href="#" id="bootstrap-component-navs" role="button">Navs</a></li>
1522 <li><a href="#" id="bootstrap-component-navbar" role="button">Navbar</a></li>
1523 <li><a href="#" id="bootstrap-component-pagination" role="button">Pagination</a></li>
1524 <li><a href="#" id="bootstrap-component-popovers" role="button">Popovers</a></li>
1525 <li><a href="#" id="bootstrap-component-progress" role="button">Progress</a></li>
1526 <li><a href="#" id="bootstrap-component-scrollspy" role="button">Scrollspy</a></li>
1527 <li><a href="#" id="bootstrap-component-tooltips" role="button">Tooltips</a></li>
1528 </ol>
1529 </div>
1530 </div>
1531
1532 </div>
1533 <div id="bootstrap-dialog-form" class="hidden" style="max-width: 800px">
1534 </div>
1535 <div id="bootstrap-dialog-input" class="hidden" style="max-width: 800px">
1536 </div>
1537 <div id="dashicons-dialog" class="hidden" style="max-width: 800px">
1538
1539 <h1>Select a Icon-category</h1>
1540
1541 <div id="dashicons-tabs">
1542 <ul>
1543 <li style="display: inline-block;width: 220px"><a href="#dashicons-admin-menu">Admin Menu</a></li>
1544 <li style="display: inline-block;width: 220px"><a href="#dashicons-welcome-screen">Welcome Screen</a></li>
1545 <li style="display: inline-block;width: 220px"><a href="#dashicons-post-formats">Post Formats</a></li>
1546 <li style="display: inline-block;width: 220px"><a href="#dashicons-media">Media</a></li>
1547 <li style="display: inline-block;width: 220px"><a href="#dashicons-image-editing">Image Editing</a></li>
1548 <li style="display: inline-block;width: 220px"><a href="#dashicons-tinymce">TinyMCE</a></li>
1549 <li style="display: inline-block;width: 220px"><a href="#dashicons-posts-screen">Posts Screen</a></li>
1550 <li style="display: inline-block;width: 220px"><a href="#dashicons-sorting">Sorting</a></li>
1551 <li style="display: inline-block;width: 220px"><a href="#dashicons-social">Social</a></li>
1552 <li style="display: inline-block;width: 220px"><a href="#dashicons-specific">Specific</a></li>
1553 <li style="display: inline-block;width: 220px"><a href="#dashicons-products">Products</a></li>
1554 <li style="display: inline-block;width: 220px"><a href="#dashicons-taxonomies">Taxonomies</a></li>
1555 <li style="display: inline-block;width: 220px"><a href="#dashicons-widgets">Widgets</a></li>
1556 <li style="display: inline-block;width: 220px"><a href="#dashicons-notifications">Notifications</a></li>
1557 <li style="display: inline-block;width: 220px"><a href="#dashicons-misc">Misc</a></li>
1558 </ul>
1559 <div id="dashicons-admin-menu">
1560 <p><strong>Admin Menu</strong></p>
1561 <ol style="padding: 5px 0px 0px 15px;list-style: normal">
1562 <li><a href="#" id="dashicons-admin-menu-dashicons-menu" role="button"><div alt="f333" class="dashicons dashicons-menu"></div></a></li>
1563 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-site" role="button"><div alt="f319" class="dashicons dashicons-admin-site"></div></a></li>
1564 <li><a href="#" id="dashicons-admin-menu-dashicons-dashboard" role="button"><div alt="f226" class="dashicons dashicons-dashboard"></div></a></li>
1565 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-post" role="button"><div alt="f109" class="dashicons dashicons-admin-post"></div></a></li>
1566 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-media" role="button"><div alt="f104" class="dashicons dashicons-admin-media"></div></a></li>
1567 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-links" role="button"><div alt="f103" class="dashicons dashicons-admin-links"></div></a></li>
1568 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-page" role="button"><div alt="f105" class="dashicons dashicons-admin-page"></div></a></li>
1569 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-comments" role="button"><div alt="f101" class="dashicons dashicons-admin-comments"></div></a></li>
1570 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-appearance" role="button"><div alt="f100" class="dashicons dashicons-admin-appearance"></div></a></li>
1571 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-plugins" role="button"><div alt="f106" class="dashicons dashicons-admin-plugins"></div></a></li>
1572 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-users" role="button"><div alt="f110" class="dashicons dashicons-admin-users"></div></a></li>
1573 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-tools" role="button"><div alt="f107" class="dashicons dashicons-admin-tools"></div></a></li>
1574 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-settings" role="button"><div alt="f108" class="dashicons dashicons-admin-settings"></div></a></li>
1575 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-network" role="button"><div alt="f112" class="dashicons dashicons-admin-network"></div></a></li>
1576 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-home" role="button"><div alt="f102" class="dashicons dashicons-admin-home"></div></a></li>
1577 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-generic" role="button"><div alt="f111" class="dashicons dashicons-admin-generic"></div></a></li>
1578 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-collapse" role="button"><div alt="f148" class="dashicons dashicons-admin-collapse"></div></a></li>
1579 <li><a href="#" id="dashicons-admin-menu-dashicons-filter" role="button"><div alt="f536" class="dashicons dashicons-filter"></div></a></li>
1580 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-customizer" role="button"><div alt="f540" class="dashicons dashicons-admin-customizer"></div></a></li>
1581 <li><a href="#" id="dashicons-admin-menu-dashicons-admin-multisite" role="button"><div alt="f541" class="dashicons dashicons-admin-multisite"></div></a></li>
1582 </ol>
1583 </div>
1584 <div id="dashicons-welcome-screen">
1585 <p><strong>Welcome Screen</strong></p>
1586 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1587 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-write-blog" role="button"><div alt="f119" class="dashicons dashicons-welcome-write-blog"></div></a></li>
1588 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-add-page" role="button"><div alt="f133" class="dashicons dashicons-welcome-add-page"></div></a></li>
1589 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-view-site" role="button"><div alt="f115" class="dashicons dashicons-welcome-view-site"></div></a></li>
1590 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-widgets-menus" role="button"><div alt="f116" class="dashicons dashicons-welcome-widgets-menus"></div></a></li>
1591 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-comments" role="button"><div alt="f117" class="dashicons dashicons-welcome-comments"></div></a></li>
1592 <li><a href="#" id="dashicons-welcome-screen-dashicons-welcome-learn-more" role="button"><div alt="f118" class="dashicons dashicons-welcome-learn-more"></div></a></li>
1593 </ol>
1594 </div>
1595 <div id="dashicons-post-formats">
1596 <p><strong>Post Formats</strong></p>
1597 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1598 <li><a href="#" id="dashicons-post-formats-dashicons-format-aside" role="button"><div alt="f123" class="dashicons dashicons-format-aside"></div></a></li>
1599 <li><a href="#" id="dashicons-post-formats-dashicons-format-image" role="button"><div alt="f128" class="dashicons dashicons-format-image"></div></a></li>
1600 <li><a href="#" id="dashicons-post-formats-dashicons-format-gallery" role="button"><div alt="f161" class="dashicons dashicons-format-gallery"></div></a></li>
1601 <li><a href="#" id="dashicons-post-formats-dashicons-format-video" role="button"><div alt="f126" class="dashicons dashicons-format-video"></div></a></li>
1602 <li><a href="#" id="dashicons-post-formats-dashicons-format-status" role="button"><div alt="f130" class="dashicons dashicons-format-status"></div></a></li>
1603 <li><a href="#" id="dashicons-post-formats-dashicons-format-quote" role="button"><div alt="f122" class="dashicons dashicons-format-quote"></div></a></li>
1604 <li><a href="#" id="dashicons-post-formats-dashicons-format-chat" role="button"><div alt="f125" class="dashicons dashicons-format-chat"></div></a></li>
1605 <li><a href="#" id="dashicons-post-formats-dashicons-format-audio" role="button"><div alt="f127" class="dashicons dashicons-format-audio"></div></a></li>
1606 <li><a href="#" id="dashicons-post-formats-dashicons-camera" role="button"><div alt="f306" class="dashicons dashicons-camera"></div></a></li>
1607 <li><a href="#" id="dashicons-post-formats-dashicons-images-alt" role="button"><div alt="f232" class="dashicons dashicons-images-alt"></div></a></li>
1608 <li><a href="#" id="dashicons-post-formats-dashicons-images-alt2" role="button"><div alt="f233" class="dashicons dashicons-images-alt2"></div></a></li>
1609 <li><a href="#" id="dashicons-post-formats-dashicons-video-alt" role="button"><div alt="f234" class="dashicons dashicons-video-alt"></div></a></li>
1610 <li><a href="#" id="dashicons-post-formats-dashicons-video-alt2" role="button"><div alt="f235" class="dashicons dashicons-video-alt2"></div></a></li>
1611 <li><a href="#" id="dashicons-post-formats-dashicons-video-alt3" role="button"><div alt="f236" class="dashicons dashicons-video-alt3"></div></a></li>
1612 </ol>
1613 </div>
1614 <div id="dashicons-media">
1615 <p><strong>Media</strong></p>
1616 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1617 <li><a href="#" id="dashicons-media-dashicons-media-archive" role="button"><div alt="f501" class="dashicons dashicons-media-archive"></div></a></li>
1618 <li><a href="#" id="dashicons-media-dashicons-media-audio" role="button"><div alt="f500" class="dashicons dashicons-media-audio"></div></a></li>
1619 <li><a href="#" id="dashicons-media-dashicons-media-code" role="button"><div alt="f499" class="dashicons dashicons-media-code"></div></a></li>
1620 <li><a href="#" id="dashicons-media-dashicons-media-default" role="button"><div alt="f498" class="dashicons dashicons-media-default"></div></a></li>
1621 <li><a href="#" id="dashicons-media-dashicons-media-document" role="button"><div alt="f497" class="dashicons dashicons-media-document"></div></a></li>
1622 <li><a href="#" id="dashicons-media-dashicons-media-interactive" role="button"><div alt="f496" class="dashicons dashicons-media-interactive"></div></a></li>
1623 <li><a href="#" id="dashicons-media-dashicons-media-spreadsheet" role="button"><div alt="f495" class="dashicons dashicons-media-spreadsheet"></div></a></li>
1624 <li><a href="#" id="dashicons-media-dashicons-media-text" role="button"><div alt="f491" class="dashicons dashicons-media-text"></div></a></li>
1625 <li><a href="#" id="dashicons-media-dashicons-media-video" role="button"><div alt="f490" class="dashicons dashicons-media-video"></div></a></li>
1626 <li><a href="#" id="dashicons-media-dashicons-playlist-audio" role="button"><div alt="f492" class="dashicons dashicons-playlist-audio"></div></a></li>
1627 <li><a href="#" id="dashicons-media-dashicons-playlist-video" role="button"><div alt="f493" class="dashicons dashicons-playlist-video"></div></a></li>
1628 <li><a href="#" id="dashicons-media-dashicons-controls-play" role="button"><div alt="f522" class="dashicons dashicons-controls-play"></div></a></li>
1629 <li><a href="#" id="dashicons-media-dashicons-controls-pause" role="button"><div alt="f523" class="dashicons dashicons-controls-pause"></div></a></li>
1630 <li><a href="#" id="dashicons-media-dashicons-controls-forward" role="button"><div alt="f519" class="dashicons dashicons-controls-forward"></div></a></li>
1631 <li><a href="#" id="dashicons-media-dashicons-controls-skipforward" role="button"><div alt="f517" class="dashicons dashicons-controls-skipforward"></div></a></li>
1632 <li><a href="#" id="dashicons-media-dashicons-controls-back" role="button"><div alt="f518" class="dashicons dashicons-controls-back"></div></a></li>
1633 <li><a href="#" id="dashicons-media-dashicons-controls-skipback" role="button"><div alt="f516" class="dashicons dashicons-controls-skipback"></div></a></li>
1634 <li><a href="#" id="dashicons-media-dashicons-controls-repeat" role="button"><div alt="f515" class="dashicons dashicons-controls-repeat"></div></a></li>
1635 <li><a href="#" id="dashicons-media-dashicons-controls-volumeon" role="button"><div alt="f521" class="dashicons dashicons-controls-volumeon"></div></a></li>
1636 <li><a href="#" id="dashicons-media-dashicons-controls-volumeoff" role="button"><div alt="f520" class="dashicons dashicons-controls-volumeoff"></div></a></li>
1637 </ol>
1638 </div>
1639 <div id="dashicons-image-editing">
1640 <p><strong>Image Editing</strong></p>
1641 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1642 <li><a href="#" id="dashicons-image-editing-dashicons-image-crop" role="button"><div alt="f165" class="dashicons dashicons-image-crop"></div></a></li>
1643 <li><a href="#" id="dashicons-image-editing-dashicons-image-rotate" role="button"><div alt="f531" class="dashicons dashicons-image-rotate"></div></a></li>
1644 <li><a href="#" id="dashicons-image-editing-dashicons-image-rotate-left" role="button"><div alt="f166" class="dashicons dashicons-image-rotate-left"></div></a></li>
1645 <li><a href="#" id="dashicons-image-editing-dashicons-image-rotate-right" role="button"><div alt="f167" class="dashicons dashicons-image-rotate-right"></div></a></li>
1646 <li><a href="#" id="dashicons-image-editing-dashicons-image-flip-vertical" role="button"><div alt="f168" class="dashicons dashicons-image-flip-vertical"></div></a></li>
1647 <li><a href="#" id="dashicons-image-editing-dashicons-image-flip-horizontal" role="button"><div alt="f169" class="dashicons dashicons-image-flip-horizontal"></div></a></li>
1648 <li><a href="#" id="dashicons-image-editing-dashicons-image-filter" role="button"><div alt="f533" class="dashicons dashicons-image-filter"></div></a></li>
1649 <li><a href="#" id="dashicons-image-editing-dashicons-undo" role="button"><div alt="f171" class="dashicons dashicons-undo"></div></a></li>
1650 <li><a href="#" id="dashicons-image-editing-dashicons-redo" role="button"><div alt="f172" class="dashicons dashicons-redo"></div></a></li>
1651 </ol>
1652 </div>
1653 <div id="dashicons-tinymce">
1654 <p><strong>TinyMCE</strong></p>
1655 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1656 <li><a href="#" id="dashicons-tinymce-dashicons-editor-bold" role="button"><div alt="f200" class="dashicons dashicons-editor-bold"></div></a></li>
1657 <li><a href="#" id="dashicons-tinymce-dashicons-editor-italic" role="button"><div alt="f201" class="dashicons dashicons-editor-italic"></div></a></li>
1658 <li><a href="#" id="dashicons-tinymce-dashicons-editor-ul" role="button"><div alt="f203" class="dashicons dashicons-editor-ul"></div></a></li>
1659 <li><a href="#" id="dashicons-tinymce-dashicons-editor-ol" role="button"><div alt="f204" class="dashicons dashicons-editor-ol"></div></a></li>
1660 <li><a href="#" id="dashicons-tinymce-dashicons-editor-quote" role="button"><div alt="f205" class="dashicons dashicons-editor-quote"></div></a></li>
1661 <li><a href="#" id="dashicons-tinymce-dashicons-editor-alignleft" role="button"><div alt="f206" class="dashicons dashicons-editor-alignleft"></div></a></li>
1662 <li><a href="#" id="dashicons-tinymce-dashicons-editor-aligncenter" role="button"><div alt="f207" class="dashicons dashicons-editor-aligncenter"></div></a></li>
1663 <li><a href="#" id="dashicons-tinymce-dashicons-editor-alignright" role="button"><div alt="f208" class="dashicons dashicons-editor-alignright"></div></a></li>
1664 <li><a href="#" id="dashicons-tinymce-dashicons-editor-insertmore" role="button"><div alt="f209" class="dashicons dashicons-editor-insertmore"></div></a></li>
1665 <li><a href="#" id="dashicons-tinymce-dashicons-editor-spellcheck" role="button"><div alt="f210" class="dashicons dashicons-editor-spellcheck"></div></a></li>
1666 <li><a href="#" id="dashicons-tinymce-dashicons-editor-expand" role="button"><div alt="f211" class="dashicons dashicons-editor-expand"></div></a></li>
1667 <li><a href="#" id="dashicons-tinymce-dashicons-editor-contract" role="button"><div alt="f506" class="dashicons dashicons-editor-contract"></div></a></li>
1668 <li><a href="#" id="dashicons-tinymce-dashicons-editor-kitchensink" role="button"><div alt="f212" class="dashicons dashicons-editor-kitchensink"></div></a></li>
1669 <li><a href="#" id="dashicons-tinymce-dashicons-editor-underline" role="button"><div alt="f213" class="dashicons dashicons-editor-underline"></div></a></li>
1670 <li><a href="#" id="dashicons-tinymce-dashicons-editor-justify" role="button"><div alt="f214" class="dashicons dashicons-editor-justify"></div></a></li>
1671 <li><a href="#" id="dashicons-tinymce-dashicons-editor-textcolor" role="button"><div alt="f215" class="dashicons dashicons-editor-textcolor"></div></a></li>
1672 <li><a href="#" id="dashicons-tinymce-dashicons-editor-paste-word" role="button"><div alt="f216" class="dashicons dashicons-editor-paste-word"></div></a></li>
1673 <li><a href="#" id="dashicons-tinymce-dashicons-editor-paste-text" role="button"><div alt="f217" class="dashicons dashicons-editor-paste-text"></div></a></li>
1674 <li><a href="#" id="dashicons-tinymce-dashicons-editor-removeformatting" role="button"><div alt="f218" class="dashicons dashicons-editor-removeformatting"></div></a></li>
1675 <li><a href="#" id="dashicons-tinymce-dashicons-editor-video" role="button"><div alt="f219" class="dashicons dashicons-editor-video"></div></a></li>
1676 <li><a href="#" id="dashicons-tinymce-dashicons-editor-customchar" role="button"><div alt="f220" class="dashicons dashicons-editor-customchar"></div></a></li>
1677 <li><a href="#" id="dashicons-tinymce-dashicons-editor-outdent" role="button"><div alt="f221" class="dashicons dashicons-editor-outdent"></div></a></li>
1678 <li><a href="#" id="dashicons-tinymce-dashicons-editor-indent" role="button"><div alt="f222" class="dashicons dashicons-editor-indent"></div></a></li>
1679 <li><a href="#" id="dashicons-tinymce-dashicons-editor-help" role="button"><div alt="f223" class="dashicons dashicons-editor-help"></div></a></li>
1680 <li><a href="#" id="dashicons-tinymce-dashicons-editor-strikethrough" role="button"><div alt="f224" class="dashicons dashicons-editor-strikethrough"></div></a></li>
1681 <li><a href="#" id="dashicons-tinymce-dashicons-editor-unlink" role="button"><div alt="f225" class="dashicons dashicons-editor-unlink"></div></a></li>
1682 <li><a href="#" id="dashicons-tinymce-dashicons-editor-rtl" role="button"><div alt="f320" class="dashicons dashicons-editor-rtl"></div></a></li>
1683 <li><a href="#" id="dashicons-tinymce-dashicons-editor-break" role="button"><div alt="f474" class="dashicons dashicons-editor-break"></div></a></li>
1684 <li><a href="#" id="dashicons-tinymce-dashicons-editor-code" role="button"><div alt="f475" class="dashicons dashicons-editor-code"></div></a></li>
1685 <li><a href="#" id="dashicons-tinymce-dashicons-editor-paragraph" role="button"><div alt="f476" class="dashicons dashicons-editor-paragraph"></div></a></li>
1686 <li><a href="#" id="dashicons-tinymce-dashicons-editor-table" role="button"><div alt="f535" class="dashicons dashicons-editor-table"></div></a></li>
1687 </ol>
1688 </div>
1689 <div id="dashicons-posts-screen">
1690 <p><strong>Posts Screen</strong></p>
1691 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1692 <li><a href="#" id="dashicons-posts-screen-dashicons-align-left" role="button"><div alt="f135" class="dashicons dashicons-align-left"></div></a></li>
1693 <li><a href="#" id="dashicons-posts-screen-dashicons-align-right" role="button"><div alt="f136" class="dashicons dashicons-align-right"></div></a></li>
1694 <li><a href="#" id="dashicons-posts-screen-dashicons-align-center" role="button"><div alt="f134" class="dashicons dashicons-align-center"></div></a></li>
1695 <li><a href="#" id="dashicons-posts-screen-dashicons-align-none" role="button"><div alt="f138" class="dashicons dashicons-align-none"></div></a></li>
1696 <li><a href="#" id="dashicons-posts-screen-dashicons-lock" role="button"><div alt="f160" class="dashicons dashicons-lock"></div></a></li>
1697 <li><a href="#" id="dashicons-posts-screen-dashicons-unlock" role="button"><div alt="f528" class="dashicons dashicons-unlock"></div></a></li>
1698 <li><a href="#" id="dashicons-posts-screen-dashicons-calendar" role="button"><div alt="f145" class="dashicons dashicons-calendar"></div></a></li>
1699 <li><a href="#" id="dashicons-posts-screen-dashicons-calendar-alt" role="button"><div alt="f508" class="dashicons dashicons-calendar-alt"></div></a></li>
1700 <li><a href="#" id="dashicons-posts-screen-dashicons-visibility" role="button"><div alt="f177" class="dashicons dashicons-visibility"></div></a></li>
1701 <li><a href="#" id="dashicons-posts-screen-dashicons-hidden" role="button"><div alt="f530" class="dashicons dashicons-hidden"></div></a></li>
1702 <li><a href="#" id="dashicons-posts-screen-dashicons-post-status" role="button"><div alt="f173" class="dashicons dashicons-post-status"></div></a></li>
1703 <li><a href="#" id="dashicons-posts-screen-dashicons-edit" role="button"><div alt="f464" class="dashicons dashicons-edit"></div></a></li>
1704 <li><a href="#" id="dashicons-posts-screen-dashicons-trash" role="button"><div alt="f182" class="dashicons dashicons-trash"></div></a></li>
1705 <li><a href="#" id="dashicons-posts-screen-dashicons-sticky" role="button"><div alt="f537" class="dashicons dashicons-sticky"></div></a></li>
1706 </ol>
1707 </div>
1708 <div id="dashicons-sorting">
1709 <p><strong>Sorting</strong></p>
1710 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1711 <li><a href="#" id="dashicons-sorting-dashicons-external" role="button"><div alt="f504" class="dashicons dashicons-external"></div></a></li>
1712 <li><a href="#" id="dashicons-sorting-dashicons-arrow-up" role="button"><div alt="f142" class="dashicons dashicons-arrow-up"></div></a></li>
1713 <li><a href="#" id="dashicons-sorting-dashicons-arrow-down" role="button"><div alt="f140" class="dashicons dashicons-arrow-down"></div></a></li>
1714 <li><a href="#" id="dashicons-sorting-dashicons-arrow-right" role="button"><div alt="f139" class="dashicons dashicons-arrow-right"></div></a></li>
1715 <li><a href="#" id="dashicons-sorting-dashicons-arrow-left" role="button"><div alt="f141" class="dashicons dashicons-arrow-left"></div></a></li>
1716 <li><a href="#" id="dashicons-sorting-dashicons-arrow-up-alt" role="button"><div alt="f342" class="dashicons dashicons-arrow-up-alt"></div></a></li>
1717 <li><a href="#" id="dashicons-sorting-dashicons-arrow-down-alt" role="button"><div alt="f346" class="dashicons dashicons-arrow-down-alt"></div></a></li>
1718 <li><a href="#" id="dashicons-sorting-dashicons-arrow-right-alt" role="button"><div alt="f344" class="dashicons dashicons-arrow-right-alt"></div></a></li>
1719 <li><a href="#" id="dashicons-sorting-dashicons-arrow-left-alt" role="button"><div alt="f340" class="dashicons dashicons-arrow-left-alt"></div></a></li>
1720 <li><a href="#" id="dashicons-sorting-dashicons-arrow-up-alt2" role="button"><div alt="f343" class="dashicons dashicons-arrow-up-alt2"></div></a></li>
1721 <li><a href="#" id="dashicons-sorting-dashicons-arrow-down-alt2" role="button"><div alt="f347" class="dashicons dashicons-arrow-down-alt2"></div></a></li>
1722 <li><a href="#" id="dashicons-sorting-dashicons-arrow-right-alt2" role="button"><div alt="f345" class="dashicons dashicons-arrow-right-alt2"></div></a></li>
1723 <li><a href="#" id="dashicons-sorting-dashicons-arrow-left-alt2" role="button"><div alt="f341" class="dashicons dashicons-arrow-left-alt2"></div></a></li>
1724 <li><a href="#" id="dashicons-sorting-dashicons-sort" role="button"><div alt="f156" class="dashicons dashicons-sort"></div></a></li>
1725 <li><a href="#" id="dashicons-sorting-dashicons-leftright" role="button"><div alt="f229" class="dashicons dashicons-leftright"></div></a></li>
1726 <li><a href="#" id="dashicons-sorting-dashicons-randomize" role="button"><div alt="f503" class="dashicons dashicons-randomize"></div></a></li>
1727 <li><a href="#" id="dashicons-sorting-dashicons-list-view" role="button"><div alt="f163" class="dashicons dashicons-list-view"></div></a></li>
1728 <li><a href="#" id="dashicons-sorting-dashicons-exerpt-view" role="button"><div alt="f164" class="dashicons dashicons-exerpt-view"></div></a></li>
1729 <li><a href="#" id="dashicons-sorting-dashicons-grid-view" role="button"><div alt="f509" class="dashicons dashicons-grid-view"></div></a></li>
1730 <li><a href="#" id="dashicons-sorting-dashicons-move" role="button"><div alt="f545" class="dashicons dashicons-move"></div></a></li>
1731 </ol>
1732 </div>
1733 <div id="dashicons-social">
1734 <p><strong>Social</strong></p>
1735 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1736 <li><a href="#" id="dashicons-social-dashicons-share" role="button"><div alt="f237" class="dashicons dashicons-share"></div></a></li>
1737 <li><a href="#" id="dashicons-social-dashicons-share-alt" role="button"><div alt="f240" class="dashicons dashicons-share-alt"></div></a></li>
1738 <li><a href="#" id="dashicons-social-dashicons-share-alt2" role="button"><div alt="f242" class="dashicons dashicons-share-alt2"></div></a></li>
1739 <li><a href="#" id="dashicons-social-dashicons-twitter" role="button"><div alt="f301" class="dashicons dashicons-twitter"></div></a></li>
1740 <li><a href="#" id="dashicons-social-dashicons-rss" role="button"><div alt="f303" class="dashicons dashicons-rss"></div></a></li>
1741 <li><a href="#" id="dashicons-social-dashicons-email" role="button"><div alt="f465" class="dashicons dashicons-email"></div></a></li>
1742 <li><a href="#" id="dashicons-social-dashicons-email-alt" role="button"><div alt="f466" class="dashicons dashicons-email-alt"></div></a></li>
1743 <li><a href="#" id="dashicons-social-dashicons-facebook" role="button"><div alt="f304" class="dashicons dashicons-facebook"></div></a></li>
1744 <li><a href="#" id="dashicons-social-dashicons-facebook-alt" role="button"><div alt="f305" class="dashicons dashicons-facebook-alt"></div></a></li>
1745 <li><a href="#" id="dashicons-social-dashicons-googleplus" role="button"><div alt="f462" class="dashicons dashicons-googleplus"></div></a></li>
1746 <li><a href="#" id="dashicons-social-dashicons-networking" role="button"><div alt="f325" class="dashicons dashicons-networking"></div></a></li>
1747 </ol>
1748 </div>
1749 <div id="dashicons-specific">
1750 <p><strong>Specific</strong></p>
1751 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1752 <li><a href="#" id="dashicons-specific-dashicons-hammer" role="button"><div alt="f308" class="dashicons dashicons-hammer"></div></a></li>
1753 <li><a href="#" id="dashicons-specific-dashicons-art" role="button"><div alt="f309" class="dashicons dashicons-art"></div></a></li>
1754 <li><a href="#" id="dashicons-specific-dashicons-migrate" role="button"><div alt="f310" class="dashicons dashicons-migrate"></div></a></li>
1755 <li><a href="#" id="dashicons-specific-dashicons-performance" role="button"><div alt="f311" class="dashicons dashicons-performance"></div></a></li>
1756 <li><a href="#" id="dashicons-specific-dashicons-universal-access" role="button"><div alt="f483" class="dashicons dashicons-universal-access"></div></a></li>
1757 <li><a href="#" id="dashicons-specific-dashicons-universal-access-alt" role="button"><div alt="f507" class="dashicons dashicons-universal-access-alt"></div></a></li>
1758 <li><a href="#" id="dashicons-specific-dashicons-tickets" role="button"><div alt="f486" class="dashicons dashicons-tickets"></div></a></li>
1759 <li><a href="#" id="dashicons-specific-dashicons-nametag" role="button"><div alt="f484" class="dashicons dashicons-nametag"></div></a></li>
1760 <li><a href="#" id="dashicons-specific-dashicons-clipboard" role="button"><div alt="f481" class="dashicons dashicons-clipboard"></div></a></li>
1761 <li><a href="#" id="dashicons-specific-dashicons-heart" role="button"><div alt="f487" class="dashicons dashicons-heart"></div></a></li>
1762 <li><a href="#" id="dashicons-specific-dashicons-megaphone" role="button"><div alt="f488" class="dashicons dashicons-megaphone"></div></a></li>
1763 <li><a href="#" id="dashicons-specific-dashicons-schedule" role="button"><div alt="f489" class="dashicons dashicons-schedule"></div></a></li>
1764 </ol>
1765 </div>
1766 <div id="dashicons-products">
1767 <p><strong>Products</strong></p>
1768 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1769 <li><a href="#" id="dashicons-products-dashicons-wordpress" role="button"><div alt="f120" class="dashicons dashicons-wordpress"></div></a></li>
1770 <li><a href="#" id="dashicons-products-dashicons-wordpress-alt" role="button"><div alt="f324" class="dashicons dashicons-wordpress-alt"></div></a></li>
1771 <li><a href="#" id="dashicons-products-dashicons-pressthis" role="button"><div alt="f157" class="dashicons dashicons-pressthis"></div></a></li>
1772 <li><a href="#" id="dashicons-products-dashicons-update" role="button"><div alt="f463" class="dashicons dashicons-update"></div></a></li>
1773 <li><a href="#" id="dashicons-products-dashicons-screenoptions" role="button"><div alt="f180" class="dashicons dashicons-screenoptions"></div></a></li>
1774 <li><a href="#" id="dashicons-products-dashicons-info" role="button"><div alt="f348" class="dashicons dashicons-info"></div></a></li>
1775 <li><a href="#" id="dashicons-products-dashicons-cart" role="button"><div alt="f174" class="dashicons dashicons-cart"></div></a></li>
1776 <li><a href="#" id="dashicons-products-dashicons-feedback" role="button"><div alt="f175" class="dashicons dashicons-feedback"></div></a></li>
1777 <li><a href="#" id="dashicons-products-dashicons-cloud" role="button"><div alt="f176" class="dashicons dashicons-cloud"></div></a></li>
1778 <li><a href="#" id="dashicons-products-dashicons-translation" role="button"><div alt="f326" class="dashicons dashicons-translation"></div></a></li>
1779 </ol>
1780 </div>
1781 <div id="dashicons-taxonomies">
1782 <p><strong>Taxonomies</strong></p>
1783 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1784 <li><a href="#" id="dashicons-taxonomies-dashicons-tag" role="button"><div alt="f323" class="dashicons dashicons-tag"></div></a></li>
1785 <li><a href="#" id="dashicons-taxonomies-dashicons-category" role="button"><div alt="f318" class="dashicons dashicons-category"></div></a></li>
1786 </ol>
1787 </div>
1788 <div id="dashicons-widgets">
1789 <p><strong>Widgets</strong></p>
1790 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1791 <li><a href="#" id="dashicons-widgets-dashicons-archive" role="button"><div alt="f480" class="dashicons dashicons-archive"></div></a></li>
1792 <li><a href="#" id="dashicons-widgets-dashicons-tagcloud" role="button"><div alt="f479" class="dashicons dashicons-tagcloud"></div></a></li>
1793 <li><a href="#" id="dashicons-widgets-dashicons-text" role="button"><div alt="f478" class="dashicons dashicons-text"></div></a></li>
1794 </ol>
1795 </div>
1796 <div id="dashicons-notifications">
1797 <p><strong>Notifications</strong></p>
1798 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1799 <li><a href="#" id="dashicons-notifications-dashicons-yes" role="button"><div alt="f147" class="dashicons dashicons-yes"></div></a></li>
1800 <li><a href="#" id="dashicons-notifications-dashicons-no" role="button"><div alt="f158" class="dashicons dashicons-no"></div></a></li>
1801 <li><a href="#" id="dashicons-notifications-dashicons-no-alt" role="button"><div alt="f335" class="dashicons dashicons-no-alt"></div></a></li>
1802 <li><a href="#" id="dashicons-notifications-dashicons-plus" role="button"><div alt="f132" class="dashicons dashicons-plus"></div></a></li>
1803 <li><a href="#" id="dashicons-notifications-dashicons-plus-alt" role="button"><div alt="f502" class="dashicons dashicons-plus-alt"></div></a></li>
1804 <li><a href="#" id="dashicons-notifications-dashicons-minus" role="button"><div alt="f460" class="dashicons dashicons-minus"></div></a></li>
1805 <li><a href="#" id="dashicons-notifications-dashicons-dismiss" role="button"><div alt="f153" class="dashicons dashicons-dismiss"></div></a></li>
1806 <li><a href="#" id="dashicons-notifications-dashicons-marker" role="button"><div alt="f159" class="dashicons dashicons-marker"></div></a></li>
1807 <li><a href="#" id="dashicons-notifications-dashicons-star-filled" role="button"><div alt="f155" class="dashicons dashicons-star-filled"></div></a></li>
1808 <li><a href="#" id="dashicons-notifications-dashicons-star-half" role="button"><div alt="f459" class="dashicons dashicons-star-half"></div></a></li>
1809 <li><a href="#" id="dashicons-notifications-dashicons-star-empty" role="button"><div alt="f154" class="dashicons dashicons-star-empty"></div></a></li>
1810 <li><a href="#" id="dashicons-notifications-dashicons-flag" role="button"><div alt="f227" class="dashicons dashicons-flag"></div></a></li>
1811 <li><a href="#" id="dashicons-notifications-dashicons-warning" role="button"><div alt="f534" class="dashicons dashicons-warning"></div></a></li>
1812 </ol>
1813 </div>
1814 <div id="dashicons-misc">
1815 <p><strong>Misc</strong></p>
1816 <ol style="padding: 5px 0px 0px 15px;list-style: square">
1817 <li><a href="#" id="dashicons-misc-dashicons-location" role="button"><div alt="f230" class="dashicons dashicons-location"></div></a></li>
1818 <li><a href="#" id="dashicons-misc-dashicons-location-alt" role="button"><div alt="f231" class="dashicons dashicons-location-alt"></div></a></li>
1819 <li><a href="#" id="dashicons-misc-dashicons-vault" role="button"><div alt="f178" class="dashicons dashicons-vault"></div></a></li>
1820 <li><a href="#" id="dashicons-misc-dashicons-shield" role="button"><div alt="f332" class="dashicons dashicons-shield"></div></a></li>
1821 <li><a href="#" id="dashicons-misc-dashicons-shield-alt" role="button"><div alt="f334" class="dashicons dashicons-shield-alt"></div></a></li>
1822 <li><a href="#" id="dashicons-misc-dashicons-sos" role="button"><div alt="f468" class="dashicons dashicons-sos"></div></a></li>
1823 <li><a href="#" id="dashicons-misc-dashicons-search" role="button"><div alt="f179" class="dashicons dashicons-search"></div></a></li>
1824 <li><a href="#" id="dashicons-misc-dashicons-slides" role="button"><div alt="f181" class="dashicons dashicons-slides"></div></a></li>
1825 <li><a href="#" id="dashicons-misc-dashicons-analytics" role="button"><div alt="f183" class="dashicons dashicons-analytics"></div></a></li>
1826 <li><a href="#" id="dashicons-misc-dashicons-chart-pie" role="button"><div alt="f184" class="dashicons dashicons-chart-pie"></div></a></li>
1827 <li><a href="#" id="dashicons-misc-dashicons-chart-bar" role="button"><div alt="f185" class="dashicons dashicons-chart-bar"></div></a></li>
1828 <li><a href="#" id="dashicons-misc-dashicons-chart-line" role="button"><div alt="f238" class="dashicons dashicons-chart-line"></div></a></li>
1829 <li><a href="#" id="dashicons-misc-dashicons-chart-area" role="button"><div alt="f239" class="dashicons dashicons-chart-area"></div></a></li>
1830 <li><a href="#" id="dashicons-misc-dashicons-groups" role="button"><div alt="f307" class="dashicons dashicons-groups"></div></a></li>
1831 <li><a href="#" id="dashicons-misc-dashicons-businessman" role="button"><div alt="f338" class="dashicons dashicons-businessman"></div></a></li>
1832 <li><a href="#" id="dashicons-misc-dashicons-id" role="button"><div alt="f336" class="dashicons dashicons-id"></div></a></li>
1833 <li><a href="#" id="dashicons-misc-dashicons-id-alt" role="button"><div alt="f337" class="dashicons dashicons-id-alt"></div></a></li>
1834 <li><a href="#" id="dashicons-misc-dashicons-products" role="button"><div alt="f312" class="dashicons dashicons-products"></div></a></li>
1835 <li><a href="#" id="dashicons-misc-dashicons-awards" role="button"><div alt="f313" class="dashicons dashicons-awards"></div></a></li>
1836 <li><a href="#" id="dashicons-misc-dashicons-forms" role="button"><div alt="f314" class="dashicons dashicons-forms"></div></a></li>
1837 <li><a href="#" id="dashicons-misc-dashicons-testimonial" role="button"><div alt="f473" class="dashicons dashicons-testimonial"></div></a></li>
1838 <li><a href="#" id="dashicons-misc-dashicons-portfolio" role="button"><div alt="f322" class="dashicons dashicons-portfolio"></div></a></li>
1839 <li><a href="#" id="dashicons-misc-dashicons-book" role="button"><div alt="f330" class="dashicons dashicons-book"></div></a></li>
1840 <li><a href="#" id="dashicons-misc-dashicons-book-alt" role="button"><div alt="f331" class="dashicons dashicons-book-alt"></div></a></li>
1841 <li><a href="#" id="dashicons-misc-dashicons-download" role="button"><div alt="f316" class="dashicons dashicons-download"></div></a></li>
1842 <li><a href="#" id="dashicons-misc-dashicons-upload" role="button"><div alt="f317" class="dashicons dashicons-upload"></div></a></li>
1843 <li><a href="#" id="dashicons-misc-dashicons-backup" role="button"><div alt="f321" class="dashicons dashicons-backup"></div></a></li>
1844 <li><a href="#" id="dashicons-misc-dashicons-clock" role="button"><div alt="f469" class="dashicons dashicons-clock"></div></a></li>
1845 <li><a href="#" id="dashicons-misc-dashicons-lightbulb" role="button"><div alt="f339" class="dashicons dashicons-lightbulb"></div></a></li>
1846 <li><a href="#" id="dashicons-misc-dashicons-microphone" role="button"><div alt="f482" class="dashicons dashicons-microphone"></div></a></li>
1847 <li><a href="#" id="dashicons-misc-dashicons-desktop" role="button"><div alt="f472" class="dashicons dashicons-desktop"></div></a></li>
1848 <li><a href="#" id="dashicons-misc-dashicons-laptop" role="button"><div alt="f547" class="dashicons dashicons-laptop"></div></a></li>
1849 <li><a href="#" id="dashicons-misc-dashicons-tablet" role="button"><div alt="f471" class="dashicons dashicons-tablet"></div></a></li>
1850 <li><a href="#" id="dashicons-misc-dashicons-smartphone" role="button"><div alt="f470" class="dashicons dashicons-smartphone"></div></a></li>
1851 <li><a href="#" id="dashicons-misc-dashicons-phone" role="button"><div alt="f525" class="dashicons dashicons-phone"></div></a></li>
1852 <li><a href="#" id="dashicons-misc-dashicons-index-card" role="button"><div alt="f510" class="dashicons dashicons-index-card"></div></a></li>
1853 <li><a href="#" id="dashicons-misc-dashicons-carrot" role="button"><div alt="f511" class="dashicons dashicons-carrot"></div></a></li>
1854 <li><a href="#" id="dashicons-misc-dashicons-building" role="button"><div alt="f512" class="dashicons dashicons-building"></div></a></li>
1855 <li><a href="#" id="dashicons-misc-dashicons-store" role="button"><div alt="f513" class="dashicons dashicons-store"></div></a></li>
1856 <li><a href="#" id="dashicons-misc-dashicons-album" role="button"><div alt="f514" class="dashicons dashicons-album"></div></a></li>
1857 <li><a href="#" id="dashicons-misc-dashicons-palmtree" role="button"><div alt="f527" class="dashicons dashicons-palmtree"></div></a></li>
1858 <li><a href="#" id="dashicons-misc-dashicons-tickets-alt" role="button"><div alt="f524" class="dashicons dashicons-tickets-alt"></div></a></li>
1859 <li><a href="#" id="dashicons-misc-dashicons-money" role="button"><div alt="f526" class="dashicons dashicons-money"></div></a></li>
1860 <li><a href="#" id="dashicons-misc-dashicons-smiley" role="button"><div alt="f328" class="dashicons dashicons-smiley"></div></a></li>
1861 <li><a href="#" id="dashicons-misc-dashicons-thumbs-up" role="button"><div alt="f529" class="dashicons dashicons-thumbs-up"></div></a></li>
1862 <li><a href="#" id="dashicons-misc-dashicons-thumbs-down" role="button"><div alt="f542" class="dashicons dashicons-thumbs-down"></div></a></li>
1863 <li><a href="#" id="dashicons-misc-dashicons-layout" role="button"><div alt="f538" class="dashicons dashicons-layout"></div></a></li>
1864 <li><a href="#" id="dashicons-misc-dashicons-paperclip" role="button"><div alt="f546" class="dashicons dashicons-paperclip"></div></a></li>
1865 </ol>
1866 </div>
1867 </div>
1868
1869 </div>
1870 <div id="fontawesome-dialog" class="hidden" style="max-width: 800px">
1871 </div>
1872 <style>
1873 ol li {
1874 display: inline-block;
1875 margin: 0 6px 0 6px;
1876 width: 220px;
1877 vertical-align: top
1878 }
1879 ol li a {
1880 display: inline-block;
1881 padding: 2px 6px 2px 6px;
1882 /*width: 100%*/
1883 }
1884 ol li a:hover {
1885 background: #0085ba;
1886 border-color: #0073aa #006799 #006799;
1887 box-shadow: 0 1px 0 #006799;
1888 color: #fff;
1889 text-decoration: none;
1890 text-shadow: 0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799;
1891 border-radius: 3px;
1892 }
1893 #bootstrap-dialog label, #bootstrap-dialog input, #bootstrap-dialog select,
1894 #bootstrap-dialog-form label, #bootstrap-dialog-form input, #bootstrap-dialog-form select,
1895 #bootstrap-dialog-input label, #bootstrap-dialog-input input, #bootstrap-dialog-input select,
1896
1897 #dashicons-dialog label, #dashicons-dialog input, #dashicons-dialog select,
1898 #dashicons-dialog-form label, #dashicons-dialog-form input, #dashicons-dialog-form select,
1899 #dashicons-dialog-input label, #dashicons-dialog-input input, #dashicons-dialog-input select,
1900
1901 #fontawesome-dialog label, #fontawesome-dialog input, #fontawesome-dialog select {
1902 display: inline-block;
1903 width: 200px
1904 }
1905 </style>
1906 <script type="text/javascript">
1907 jQuery('#bootstrap-dialog, #bootstrap-dialog-form, #bootstrap-dialog-input, #dashicons-dialog, #fontawesome-dialog').dialog({
1908 title: 'Bootstrap - Dialog',
1909 dialogClass: 'wp-dialog',
1910 autoOpen: false,
1911 draggable: true,
1912 width: 'auto',
1913 modal: true,
1914 resizable: false,
1915 closeOnEscape: true,
1916 /*show: {
1917 effect: "blind",
1918 duration: 1000
1919 },
1920 hide: {
1921 effect: "explode",
1922 duration: 1000
1923 }, */
1924 buttons: {
1925 Cancel: function() {
1926 jQuery( this ).dialog( "close" );
1927 }/*,
1928 "Next": function() {
1929 $( this ).dialog( "close" );
1930 }*/
1931
1932 },
1933 position: {
1934 my: "center",
1935 at: "center",
1936 of: window
1937 },
1938 open: function () {
1939 // close dialog by clicking the overlay behind it
1940 jQuery('.ui-widget-overlay').bind('click', function(){
1941 jQuery('#bootstrap-dialog').dialog('close');
1942 })
1943 },
1944 create: function () {
1945 // style fix for WordPress admin
1946 jQuery('.ui-dialog-titlebar-close').addClass('ui-button');
1947 },
1948 });
1949
1950 if(jQuery( "#bootstrap-tabs" ).length > 0){
1951 jQuery( "#bootstrap-tabs" ).tabs({
1952 collapsible: false,
1953 active: false
1954 });
1955 }
1956
1957 if(jQuery( "#dashicons-tabs" ).length > 0){
1958 jQuery( "#dashicons-tabs" ).tabs({
1959 collapsible: false,
1960 active: false
1961 });
1962 }
1963
1964 /*jQuery( "#bootstrap-accordion" ).accordion({
1965 icons: {
1966 header: "ui-icon-circle-arrow-e",
1967 activeHeader: "ui-icon-circle-arrow-s"
1968 },
1969 collapsible: true,
1970 active: 0,
1971 heightStyle: "content",
1972 animate: 200
1973 });*/
1974
1975 var tinyMCE_object = <?php echo json_encode(
1976 array(
1977 'bootstrap_button_name' => esc_html__('Bootstrap', 'bootstrap'),
1978 'bootstrap_button_title' => esc_html__('Bootstrap Shortcode Creator', 'bootstrap'),
1979 'dashicons_button_name' => esc_html__('Dashicons', 'bootstrap'),
1980 'dashicons_button_title' => esc_html__('Dashicons Creator', 'bootstrap'),
1981 'fontawesome_button_name' => esc_html__('Fontawesome', 'bootstrap'),
1982 'fontawesome_button_title' => esc_html__('Fontawesome Creator', 'bootstrap'),
1983 'image_title' => esc_html__('Image', 'bootstrap'),
1984 'image_button_title' => esc_html__('Upload image', 'bootstrap'),
1985 )
1986 );
1987 ?>;
1988 </script><?php
1989 }
1990}
1991
1992function bootstrap_replace_meta_widget(){
1993 //unregister_sidebar_widget('meta');
1994 $widget_ops = array('classname' => 'widget_meta', 'description' => __('Log in/out, admin, feed and WordPress links', 'bootstrap'));
1995 wp_register_sidebar_widget('meta2', __('Meta 2'), 'wp_widget_meta_modified', $widget_ops);
1996}
1997//add_action('widgets_init', bootstrap_replace_meta_widget);
1998
1999function wp_widget_meta_modified($args) {
2000 extract($args);
2001 $options = get_option('widget_meta');
2002 $title = empty($options['title']) ? __('Meta') : apply_filters('widget_title', $options['title']);
2003
2004 echo $before_widget;
2005 echo $before_title . $title . $after_title;
2006?>
2007 <ul>
2008 <?php wp_register();?>
2009 <li><?php wp_loginout(); ?></li>
2010 <li><a href="<?php bloginfo('rss2_url'); ?>" title="<?php echo attribute_escape(__('Syndicate this site using RSS 2.0')); ?>"><?php _e('Entries <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
2011 <li><a href="<?php bloginfo('comments_rss2_url'); ?>" title="<?php echo attribute_escape(__('The latest comments to all posts in RSS')); ?>"><?php _e('Comments <abbr title="Really Simple Syndication">RSS</abbr>'); ?></a></li>
2012 <?php
2013 /**
2014 * Filters the "Powered by WordPress" text in the Meta widget.
2015 *
2016 * @since 3.6.0
2017 * @since 4.9.0 Added the `$instance` parameter.
2018 *
2019 * @param string $title_text Default title text for the WordPress.org link.
2020 * @param array $instance Array of settings for the current widget.
2021 */
2022 echo apply_filters( 'widget_meta_poweredby', sprintf( '<li><a href="%s" title="%s">%s</a></li>',
2023 esc_url( __( 'https://wordpress.org/' ) ),
2024 esc_attr__( 'Powered by WordPress, state-of-the-art semantic personal publishing platform.' ),
2025 _x( 'WordPress.org', 'meta widget link text' )
2026 ), $instance );
2027
2028 wp_meta();
2029 ?>
2030 </ul>
2031<?php
2032 echo $after_widget;
2033}
2034
2035function bootstrap_widget_meta_poweredby( $link ) {
2036 return ''; //'<li><a href="' . esc_url(__('https://overfutz.org/')) . '" title="' . esc_attr__('Powered by DBB.') . '">OverFutz.org</a></li>';
2037}
2038add_filter( 'widget_meta_poweredby', 'bootstrap_widget_meta_poweredby', 10 );
2039
2040add_action('admin_enqueue_scripts', 'admin_scripts');
2041function admin_scripts(){
2042// wp_enqueue_script('jquery-ui-dialog');
2043// wp_enqueue_style('wp-jquery-ui-dialog');
2044 wp_enqueue_script('jquery-ui-tabs');
2045}
2046
2047remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
2048remove_action( 'woocommerce_before_shop_loop', 'woocommerce_catalog_ordering', 30 );
2049
2050function bootstrap_show_extra_profile_fields( $user ) {
2051
2052 $product_category = get_the_author_meta( 'product_category', $user->ID );
2053
2054 $profile_pic = ($user!=='add-new-user') ? get_user_meta($user->ID, 'bootstrap_pic', true): false;
2055
2056 if( !empty($profile_pic) ){
2057 $image = wp_get_attachment_image_src( $profile_pic, 'thumbnail' );
2058 }
2059 ?>
2060 <h3><?php esc_html_e( 'Product-Options', 'bootstrap' ); ?></h3>
2061
2062 <table class="form-table">
2063 <tr>
2064 <th><label for="product_category"><?php esc_html_e( 'Select a Category', 'bootstrap' ); ?></label></th>
2065 <td>
2066 <select id="product_category" name="product_category">
2067 <?php
2068
2069 $taxonomy = 'product_cat';
2070 $orderby = 'name';
2071 $show_count = 0; // 1 for yes, 0 for no
2072 $pad_counts = 0; // 1 for yes, 0 for no
2073 $hierarchical = 1; // 1 for yes, 0 for no
2074 $title = '';
2075 $empty = 0;
2076
2077 $args = array(
2078 'taxonomy' => $taxonomy,
2079 'orderby' => $orderby,
2080 'show_count' => $show_count,
2081 'pad_counts' => $pad_counts,
2082 'hierarchical' => $hierarchical,
2083 'title_li' => $title,
2084 'hide_empty' => $empty
2085 );
2086
2087 $all_categories = get_categories( $args );
2088 foreach ($all_categories as $cat) {
2089 if($cat->category_parent == 0) {
2090
2091 $selected = $product_category == $cat->term_id ? ' selected="selected"' : '';
2092 echo '<option value="' . $cat->term_id . '"' . $selected . '>' . $cat->name . '</option>';
2093
2094 $args2 = array(
2095 'taxonomy' => $taxonomy,
2096 'child_of' => 0,
2097 'parent' => $cat->term_id,
2098 'orderby' => $orderby,
2099 'show_count' => $show_count,
2100 'pad_counts' => $pad_counts,
2101 'hierarchical' => $hierarchical,
2102 'title_li' => $title,
2103 'hide_empty' => $empty
2104 );
2105
2106 $sub_cats = get_categories( $args2 );
2107 if($sub_cats) {
2108 foreach($sub_cats as $sub_category) {
2109 $selected = $product_category == $sub_category->term_id ? ' selected="selected"' : '';
2110 echo '<option value="' . $sub_category->term_id . '"' . $selected . '>- ' . $sub_category->name . '</option>';
2111 }
2112 }
2113 }
2114 }
2115 ?>
2116 </select>
2117 </td>
2118 </tr>
2119 <tr>
2120 <th>
2121 <label for="bootstrap-image"><?php _e('Profile Image', 'bootstrap') ?></label>
2122 </th>
2123 <td>
2124 <input type="button" data-id="bootstrap_image_id" data-src="bootstrap-img" class="button bootstrap-image" name="bootstrap_image" id="bootstrap-image" value="Upload" />
2125 <input type="hidden" class="button" name="bootstrap_image_id" id="bootstrap_image_id" value="<?php echo !empty($profile_pic) ? $profile_pic : ''; ?>" />
2126 <img id="bootstrap-img" src="<?php echo !empty($profile_pic) ? $image[0] : ''; ?>" style="<?php echo empty($profile_pic) ? 'display:none;' :'' ?> max-width: 100px; max-height: 100px;" />
2127 </td>
2128 </tr>
2129 </table>
2130 <?php
2131}
2132add_action('show_user_profile', 'bootstrap_show_extra_profile_fields');
2133add_action('edit_user_profile', 'bootstrap_show_extra_profile_fields');
2134add_action('user_new_form', 'bootstrap_show_extra_profile_fields');
2135
2136function bootstrap_user_profile_update_errors( $errors, $update, $user ) {
2137 if ( $update ) {
2138 //return;
2139 }
2140
2141 if ( empty( $_POST['product_category'] ) ) {
2142 $errors->add( 'product_category_error', __( '<strong>ERROR</strong>: Please select a product-category.', 'bootstrap' ) );
2143 }
2144
2145 if ( ! empty( $_POST['product_category'] ) && intval( $_POST['product_category'] ) < 1 ) {
2146 $errors->add( 'product_category_error', __( '<strong>ERROR</strong>: Please select a product-category.', 'bootstrap' ) );
2147 }
2148}
2149add_action( 'user_profile_update_errors', 'bootstrap_user_profile_update_errors', 10, 3 );
2150
2151function bootstrap_update_profile_fields( $user_id ) {
2152
2153 if ( ! current_user_can( 'edit_user', $user_id ) ) {
2154 return false;
2155 }
2156
2157 if ( ! empty( $_POST['product_category'] ) && intval( $_POST['product_category'] ) > 0 ) {
2158 update_user_meta( $user_id, 'product_category', intval( $_POST['product_category'] ) );
2159 }
2160
2161 $profile_pic = empty($_POST['bootstrap_image_id']) ? '' : $_POST['bootstrap_image_id'];
2162 if( !empty($profile_pic) ){
2163 update_user_meta($user_id, 'bootstrap_pic', $profile_pic);
2164 }
2165
2166}
2167add_action( 'personal_options_update', 'bootstrap_update_profile_fields' );
2168add_action( 'edit_user_profile_update', 'bootstrap_update_profile_fields' );
2169add_action( 'user_register', 'bootstrap_update_profile_fields' );
2170//add_action( 'profile_update', 'bootstrap_update_profile_fields' );
2171
2172function bootstrap_cleaner_archive_titles($title) {
2173 global $author;
2174 if ( is_category() ) {
2175 $title = single_cat_title( '', false );
2176 } elseif ( is_tag() ) {
2177 $title = single_tag_title( '', false );
2178 } elseif ( is_author() ) {
2179 $title = sprintf(__('Author: %s'), '<span class="vcard">' . (get_the_author_meta('first_name', intval($author)) == '' || get_the_author_meta('last_name', intval($author)) == '' ? get_the_author_meta('user_login', intval($author)) : get_the_author_meta('first_name', intval($author)) . ' ' . get_the_author_meta('last_name', intval($author))) . '</span>');
2180 }
2181 return $title;
2182}
2183
2184function bootstrap_wp_loaded() {
2185 //remove_filter( 'get_the_archive_title', 'bento_cleaner_archive_titles', 10, 1 );
2186 add_filter( 'get_the_archive_title', 'bootstrap_cleaner_archive_titles' );
2187
2188 //remove_action( 'woocommerce_after_main_content', 'bento_woo_wrapper_end', 10 );
2189 add_action( 'woocommerce_after_main_content', 'bootstrap_woo_wrapper_end', 10 );
2190}
2191add_action( 'wp_loaded', 'bootstrap_wp_loaded' );
2192
2193function bootstrap_woo_wrapper_end() {
2194 echo '</article></main></div>';
2195 if ( is_shop() ) {
2196 $page_id = get_option( 'woocommerce_shop_page_id' );
2197 } else {
2198 $page_id = get_queried_object_id();
2199 }
2200 if ( is_active_sidebar( 'bootstrap_author' ) ) {
2201 if ( get_post_meta( $page_id, 'bootstrap_sidebar_layout', true ) != 'full-width' || is_product_category() ) {
2202 get_sidebar('author');
2203 }
2204 }
2205 echo '</div>';
2206}
2207
2208function bootstrap_add_admin_scripts(){
2209 wp_enqueue_media();
2210 wp_enqueue_script('bootstrap-uploader', get_stylesheet_directory_uri().'/js/uploader.js', array('jquery'), false, true );
2211}
2212add_action('admin_enqueue_scripts', 'bootstrap_add_admin_scripts');
2213
2214remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
2215remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );