Passed
Pull Request — master (#394)
by Virginia
02:11
created

extras.php ➔ lsx_cover_template_custom_enqueue()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
nc 3
nop 0
dl 0
loc 17
rs 9.7
c 0
b 0
f 0
1
<?php
2
/**
3
 * LSX functions and definitions - Integrations - Extras
4
 *
5
 * @package    lsx
6
 * @subpackage extras
7
 */
8
9
if ( ! defined( 'ABSPATH' ) ) {
10
	exit;
11
}
12
13
/**
14
 * Enable shortcode for text widget.
15
 *
16
 * @package    lsx
17
 * @subpackage extras
18
 */
19
add_filter( 'widget_text', 'shortcode_unautop' );
20
add_filter( 'widget_text', 'do_shortcode' );
21
22
if ( ! function_exists( 'lsx_kses_allowed_html' ) ) :
23
24
	/**
25
	 * Enable extra attributes (srcset, sizes) in img tag.
26
	 *
27
	 * @package    lsx
28
	 * @subpackage extras
29
	 */
30
	function lsx_kses_allowed_html( $allowedtags, $context ) {
0 ignored issues
show
Unused Code introduced by
The parameter $context is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
31
		$allowedtags['img']['srcset'] = true;
32
		$allowedtags['img']['sizes']  = true;
33
34
		$allowedtags['input']['name']  = true;
35
		$allowedtags['input']['type']  = true;
36
		$allowedtags['input']['value'] = true;
37
		$allowedtags['input']['class'] = true;
38
		$allowedtags['input']['id']    = true;
39
		$allowedtags['script']['type'] = true;
40
		return $allowedtags;
41
	}
42
43
endif;
44
45
add_filter( 'wp_kses_allowed_html', 'lsx_kses_allowed_html', 10, 2 );
46
47
if ( ! function_exists( 'lsx_body_class' ) ) :
48
49
	/**
50
	 * Add and remove body_class() classes.
51
	 *
52
	 * @package    lsx
53
	 * @subpackage extras
54
	 */
55
	function lsx_body_class( $classes ) {
56
		global $post;
57
58
		$header_layout = get_theme_mod( 'lsx_header_layout', 'inline' );
59
		$classes[]     = 'header-' . $header_layout;
60
61
		$mobile_header_layout = get_theme_mod( 'lsx_header_mobile_layout', 'navigation-bar' );
62
		$classes[]            = 'mobile-header-' . $mobile_header_layout;
63
64
		if ( isset( $post ) ) {
65
			$classes[] = $post->post_name;
66
		}
67
68
		if ( class_exists( 'LSX_Banners' ) && empty( apply_filters( 'lsx_banner_plugin_disable', false ) ) ) {
69
			$post_types = array( 'page', 'post' );
70
			$post_types = apply_filters( 'lsx_allowed_post_type_banners', $post_types );
71
72
			$img_group = get_post_meta( $post->ID, 'image_group', true );
73
74
			if ( is_singular( $post_types ) && ! empty( $img_group ) && is_array( $img_group ) && ! empty( $img_group['banner_image'] ) ) {
75
				$classes[] = 'page-has-banner';
76
			}
77
78
			if ( is_singular( $post_types ) && empty( $img_group['banner_image'] ) && ( ! has_post_thumbnail( $post->ID ) ) ) {
79
				$classes[] = 'page-has-no-banner';
80
			}
81
		}
82
83
		if ( function_exists( 'tour_operator' ) ) {
84
			$post_types = array( 'page', 'post' );
0 ignored issues
show
Unused Code introduced by
$post_types is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
85
86
			$classes[] = 'to-active';
87
		}
88
89
		if ( has_nav_menu( 'top-menu' ) || has_nav_menu( 'top-menu-left' ) ) {
90
			$classes[] = 'has-top-menu';
91
		}
92
93
		$fixed_header = get_theme_mod( 'lsx_header_fixed', false );
94
95
		if ( false !== $fixed_header ) {
96
			$classes[] = 'top-menu-fixed';
97
		}
98
99
		$search_form = get_theme_mod( 'lsx_header_search', false );
100
101
		if ( false !== $search_form ) {
102
			$classes[] = 'has-header-search';
103
		}
104
105
		$preloader_content = get_theme_mod( 'lsx_preloader_content_status', false );
106
107
		if ( false !== $preloader_content ) {
108
			$classes[] = 'preloader-content-enable';
109
		}
110
111
		$register_enabled = get_option( 'users_can_register', false );
112
		if ( ( $register_enabled ) && is_page( 'my-account' ) && is_singular() ) {
113
			$classes[] = 'register-enabled';
114
		}
115
116
		return $classes;
117
	}
118
119
endif;
120
121
add_filter( 'body_class', 'lsx_body_class' );
122
123
if ( ! function_exists( 'lsx_embed_wrap' ) ) :
124
125
	/**
126
	 * Wrap embedded media as suggested by Readability.
127
	 *
128
	 * @package    lsx
129
	 * @subpackage extras
130
	 *
131
	 * @link https://gist.github.com/965956
132
	 * @link http://www.readability.com/publishers/guidelines#publisher
133
	 */
134
	function lsx_embed_wrap( $cache, $url, $attr = '', $post_id = '' ) {
0 ignored issues
show
Unused Code introduced by
The parameter $url is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $attr is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $post_id is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
135
		if ( false !== strpos( $cache, '<iframe' ) ) {
136
			return '<div class="entry-content-asset">' . $cache . '</div>';
137
		}
138
139
		return $cache;
140
	}
141
142
endif;
143
144
add_filter( 'embed_oembed_html', 'lsx_embed_wrap', 10, 4 );
145
146
if ( ! function_exists( 'lsx_remove_self_closing_tags' ) ) :
147
148
	/**
149
	 * Remove unnecessary self-closing tags.
150
	 *
151
	 * @package    lsx
152
	 * @subpackage extras
153
	 */
154
	function lsx_remove_self_closing_tags( $input ) {
155
		return str_replace( ' />', '>', $input );
156
	}
157
158
endif;
159
160
add_filter( 'get_avatar', 'lsx_remove_self_closing_tags' ); // <img />
161
add_filter( 'comment_id_fields', 'lsx_remove_self_closing_tags' ); // <input />
162
add_filter( 'post_thumbnail_html', 'lsx_remove_self_closing_tags' ); // <img />
163
164
if ( ! function_exists( 'lsx_is_element_empty' ) ) :
165
166
	/**
167
	 * Checks if a Nav $element is empty or not.
168
	 *
169
	 * @package    lsx
170
	 * @subpackage extras
171
	 */
172
	function lsx_is_element_empty( $element ) {
173
		$element = trim( $element );
174
		return empty( $element ) ? false : true;
175
	}
176
177
endif;
178
179
if ( ! function_exists( 'lsx_get_thumbnail' ) ) :
180
181
	/**
182
	 * return the responsive images.
183
	 *
184
	 * @package    lsx
185
	 * @subpackage extras
186
	 */
187
	function lsx_get_thumbnail( $size, $image_src = false ) {
188
		if ( false === $image_src ) {
189
			$post_id           = get_the_ID();
190
			$post_thumbnail_id = get_post_thumbnail_id( $post_id );
191
		} elseif ( false !== $image_src ) {
192
			if ( is_numeric( $image_src ) ) {
193
				$post_thumbnail_id = $image_src;
194
			} else {
195
				$post_thumbnail_id = lsx_get_attachment_id_from_src( $image_src );
196
			}
197
		}
198
199
		$size      = apply_filters( 'lsx_thumbnail_size', $size );
200
		$img       = '';
201
		$lazy_img  = '';
202
		$image_url = '';
0 ignored issues
show
Unused Code introduced by
$image_url is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
203
204
		if ( 'lsx-thumbnail-single' === $size || 'lsx-thumbnail-wide' === $size || 'lsx-thumbnail-square' === $size || 'thumbnail' === $size ) {
205
			$srcset = false;
206
			if ( ( ( 'team' === get_post_type() ) || ( 'testimonial' === get_post_type() ) ) && is_search() ) {
207
				$img = get_the_post_thumbnail_url( get_the_ID(), 'lsx-thumbnail-wide' );
208
			} else {
209
				$temp_img = wp_get_attachment_image_src( $post_thumbnail_id, $size );
0 ignored issues
show
Bug introduced by
The variable $post_thumbnail_id does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
210
				if ( ! empty( $temp_img ) ) {
211
					$img = $temp_img[0];
212
				}
213
			}
214
		} else {
215
			$srcset = true;
216
			$img    = wp_get_attachment_image_srcset( $post_thumbnail_id, $size );
217
218
			$temp_lazy = wp_get_attachment_image_src( $post_thumbnail_id, $size );
219
			if ( ! empty( $temp_lazy ) ) {
220
				$lazy_img = $temp_lazy[0];
221
			}
222
223
			if ( empty( $img ) ) {
224
				$srcset = false;
225
				if ( ! empty( $lazy_img ) ) {
226
					$img = $lazy_img;
227
				}
228
			}
229
		}
230
231
		if ( '' !== $img ) {
232
			$image_url = $img;
233
			$img       = '<img title="' . the_title_attribute( 'echo=0' ) . '" alt="' . the_title_attribute( 'echo=0' ) . '" class="attachment-responsive wp-post-image lsx-responsive" ';
234
			if ( $srcset ) {
235
				$img .= 'srcset="' . esc_attr( $image_url ) . '" ';
236
			} else {
237
				$img .= 'src="' . esc_url( $image_url ) . '" ';
238
			}
239
			$img .= '/>';
240
241
			$img = apply_filters( 'lsx_lazyload_filter_images', $img );
242
			$img = apply_filters( 'lsx_lazyload_slider_images', $img, $post_thumbnail_id, $size, $srcset, $image_url );
243
		}
244
245
		return $img;
246
	}
247
248
endif;
249
250
if ( ! function_exists( 'lsx_thumbnail' ) ) :
251
252
	/**
253
	 * Output the Resonsive Images.
254
	 *
255
	 * @package    lsx
256
	 * @subpackage extras
257
	 */
258
	function lsx_thumbnail( $size = 'thumbnail', $image_src = false ) {
259
		echo wp_kses_post( lsx_get_thumbnail( $size, $image_src ) );
260
	}
261
262
endif;
263
264
if ( ! function_exists( 'lsx_get_attachment_id_from_src' ) ) :
265
266
	/**
267
	 * Gets the attachments ID from the src.
268
	 *
269
	 * @package    lsx
270
	 * @subpackage extras
271
	 */
272
	function lsx_get_attachment_id_from_src( $image_src ) {
273
		$post_id = wp_cache_get( $image_src, 'lsx_get_attachment_id_from_src' );
274
275
		if ( false === $post_id ) {
276
			global $wpdb;
277
			$post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE guid='%s' LIMIT 1", $image_src ) );
278
			wp_cache_set( $image_src, $post_id, 'lsx_get_attachment_id_from_src', 3600 );
279
		}
280
281
		return $post_id;
282
	}
283
284
endif;
285
286
if ( ! function_exists( 'lsx_page_banner' ) ) :
287
288
	/**
289
	 * Add Featured Image as Banner on Single Pages.
290
	 *
291
	 * @package    lsx
292
	 * @subpackage extras
293
	 */
294
	function lsx_page_banner() {
295
		if ( true === apply_filters( 'lsx_page_banner_disable', false ) ) {
296
			return;
297
		}
298
299
		$post_types = array( 'page', 'post' );
300
		$post_types = apply_filters( 'lsx_allowed_post_type_banners', $post_types );
301
302
		if ( is_singular( $post_types ) && has_post_thumbnail() ) :
303
			$bg_image = '';
304
305
			if ( has_post_thumbnail() ) {
306
				$temp_bg_image = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'full' );
307
				if ( ! empty( $temp_bg_image ) ) {
308
					$bg_image = $temp_bg_image[0];
309
				}
310
			}
311
312
			if ( '' !== $bg_image ) :
313
				?>
314
					<div class="page-banner-wrap">
315
						<div class="page-banner">
316
							<?php lsx_banner_inner_top(); ?>
317
318
							<div class="page-banner-image" style="background-image:url(<?php echo esc_attr( $bg_image ); ?>);"></div>
319
320
							<div class="container">
321
								<header class="page-header">
322
									<h1 class="page-title"><?php the_title(); ?></h1>
323
									<?php lsx_banner_content(); ?>
324
								</header>
325
							</div>
326
327
							<?php lsx_banner_inner_bottom(); ?>
328
						</div>
329
					</div>
330
				<?php
331
			endif;
332
		endif;
333
	}
334
335
endif;
336
337
add_filter( 'lsx_banner_disable', 'lsx_disable_banner_for_blocks' );
338
add_filter( 'lsx_global_header_disable', 'lsx_disable_banner_for_blocks' );
339
340
341
if ( ! function_exists( 'lsx_disable_banner_for_blocks' ) ) :
342
343
	/**
344
	 * Disable the Banner if the page is using Blocks
345
	 *
346
	 * @package    lsx
347
	 * @subpackage extras
348
	 *
349
	 * @param  $disable boolean
350
	 * @return boolean
351
	 */
352
	function lsx_disable_banner_for_blocks( $disable ) {
353
		$queried_object = get_queried_object_id();
354
		$show_on_front  = get_option( 'show_on_front' );
355
356
		if ( 'page' === $show_on_front && (int) get_option( 'page_for_posts' ) === $queried_object ) {
357
			return $disable;
358
		}
359
360
		if ( function_exists( 'has_blocks' ) && has_blocks() && ( ! is_archive() ) ) {
361
			$disable = true;
362
		}
363
364
		// Single projects will still have banners.
365
		if ( function_exists( 'has_blocks' ) && has_blocks() && ( is_singular( 'project' ) ) ) {
366
			$disable = false;
367
		}
368
		return $disable;
369
	}
370
371
endif;
372
373
add_action( 'lsx_header_after', 'lsx_page_banner' );
374
375
if ( ! function_exists( 'lsx_form_submit_button' ) ) :
376
377
	/**
378
	 * filter the Gravity Forms button type.
379
	 *
380
	 * @package    lsx
381
	 * @subpackage extras
382
	 *
383
	 * @param  $button String
384
	 * @param  $form   Object
385
	 * @return String
386
	 */
387
	function lsx_form_submit_button( $button, $form ) {
0 ignored issues
show
Unused Code introduced by
The parameter $button is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
388
		return "<button class='btn btn-primary' id='gform_submit_button_{$form["id"]}'><span>Submit</span></button>";
389
	}
390
391
endif;
392
393
add_filter( 'gform_submit_button', 'lsx_form_submit_button', 10, 2 );
394
395
if ( ! function_exists( 'lsx_excerpt_more' ) ) :
396
397
	/**
398
	 * Replaces the excerpt "more" text by a link.
399
	 *
400
	 * @package    lsx
401
	 * @subpackage extras
402
	 */
403
	function lsx_excerpt_more( $more ) {
0 ignored issues
show
Unused Code introduced by
The parameter $more is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
404
		return '...';
405
	}
406
407
endif;
408
409
add_filter( 'excerpt_more', 'lsx_excerpt_more' );
410
411
if ( ! function_exists( 'lsx_the_excerpt_filter' ) ) :
412
413
	/**
414
	 * Add a continue reading link to the excerpt.
415
	 *
416
	 * @package    lsx
417
	 * @subpackage extras
418
	 */
419
	function lsx_the_excerpt_filter( $excerpt ) {
420
421
		$post_formats = array(
422
			'aside'   => 'aside',
423
			'gallery' => 'gallery',
424
			'link'    => 'link',
425
			'image'   => 'image',
426
			'quote'   => 'quote',
427
			'status'  => 'status',
428
			'video'   => 'video',
429
			'audio'   => 'audio',
430
		);
431
432
		$show_full_content = has_post_format( apply_filters( 'lsx_the_excerpt_filter_post_types', $post_formats ) );
433
434
		if ( ! $show_full_content ) {
435
			if ( '' !== $excerpt && ! stristr( $excerpt, 'moretag' ) ) {
436
				$pagination = wp_link_pages(
437
					array(
438
						'before'      => '<div class="lsx-postnav-wrapper"><div class="lsx-postnav">',
439
						'after'       => '</div></div>',
440
						'link_before' => '<span>',
441
						'link_after'  => '</span>',
442
						'echo'        => 0,
443
					)
444
				);
445
446
				if ( ! empty( $pagination ) ) {
447
					$excerpt .= $pagination;
448
				} else {
449
					$excerpt_more = '<p><a class="moretag" href="' . esc_url( get_permalink() ) . '">' . esc_html__( 'Read More', 'lsx' ) . '</a></p>';
450
					$excerpt .= apply_filters( 'excerpt_more_p', $excerpt_more );
451
				}
452
			}
453
		}
454
455
		return $excerpt;
456
	}
457
458
endif;
459
460
add_filter( 'the_excerpt', 'lsx_the_excerpt_filter', 1, 20 );
461
462
if ( ! function_exists( 'lsx_full_width_widget_classes' ) ) :
463
464
	/**
465
	 * Filter sidebar widget params, to add the widget_lsx_full_width_alt or widget_lsx_full_width classes to the text widget.
466
	 *
467
	 * @package    lsx
468
	 * @subpackage extras
469
	 */
470
	function lsx_full_width_widget_classes( $params ) {
471
		if ( is_admin() ) {
472
			return $params;
473
		}
474
475
		global $wp_registered_widgets;
476
477
		$widget_id   = $params[0]['widget_id'];
478
		$widget_name = $params[0]['widget_name'];
479
480
		if ( 'Text' === $widget_name ) {
481
			$wp_registered_widgets[ $widget_id ]['original_callback'] = $wp_registered_widgets[ $widget_id ]['callback'];
482
			$wp_registered_widgets[ $widget_id ]['callback']          = 'lsx_full_width_widget_custom_callback';
483
		}
484
485
		return $params;
486
	}
487
488
endif;
489
490
add_filter( 'dynamic_sidebar_params', 'lsx_full_width_widget_classes' );
491
492
if ( ! function_exists( 'lsx_full_width_widget_custom_callback' ) ) :
493
494
	/**
495
	 * Filter sidebar widget params, to add the widget_lsx_full_width_alt or widget_lsx_full_width classes to the text widget.
496
	 *
497
	 * @package    lsx
498
	 * @subpackage extras
499
	 */
500
	function full_width_widget_custom_callback() {
501
		global $wp_registered_widgets;
502
503
		$original_callback_params = func_get_args();
504
		$widget_id                = $original_callback_params[0]['widget_id'];
505
506
		$original_callback                               = $wp_registered_widgets[ $widget_id ]['original_callback'];
507
		$wp_registered_widgets[ $widget_id ]['callback'] = $original_callback;
508
509
		$widget_id_base = $wp_registered_widgets[ $widget_id ]['callback'][0]->id_base;
510
511
		$widget_classname = '';
512
513
		if ( is_callable( $original_callback ) ) {
514
			ob_start();
515
			call_user_func_array( $original_callback, $original_callback_params );
516
			$widget_output = ob_get_clean();
517
518
			echo wp_kses_post( apply_filters( 'lsx_widget_output', $widget_output, $widget_id_base, $widget_classname, $widget_id ) );
519
		}
520
	}
521
522
endif;
523
524
if ( ! function_exists( 'lsx_full_width_widget_output' ) ) :
525
526
	/**
527
	 * Filter sidebar widget params, to add the widget_lsx_full_width_alt or widget_lsx_full_width classes to the text widget.
528
	 *
529
	 * @package    lsx
530
	 * @subpackage extras
531
	 */
532
	function lsx_full_width_widget_output( $widget_output, $widget_id_base, $widget_id ) {
0 ignored issues
show
Unused Code introduced by
The parameter $widget_id is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
533
		if ( 'text' === $widget_id_base ) {
534
			if ( false !== strpos( $widget_output, '<div class="lsx-full-width-alt">' ) ) {
535
				$widget_output = str_replace( 'class="widget widget_text"', 'class="widget widget_text widget_lsx_full_width_alt"', $widget_output );
536
			} elseif ( false !== strpos( $widget_output, '<div class="lsx-full-width">' ) ) {
537
				$widget_output = str_replace( 'class="widget widget_text"', 'class="widget widget_text widget_lsx_full_width"', $widget_output );
538
			}
539
		}
540
541
		return $widget_output;
542
	}
543
544
endif;
545
546
add_filter( 'lsx_widget_output', 'lsx_full_width_widget_output', 10, 3 );
547
548
/**
549
 * Check if the content has a restricted post format that needs to show a full excerpt.
550
 */
551
function lsx_post_format_force_content_on_list() {
552
	$post_formats = apply_filters( 'lsx_post_format_force_content_on_list',
553
		array(
554
			'video' => 'video',
555
			'audio' => 'audio',
556
			'quote' => 'quote',
557
			'link'  => 'link',
558
		)
559
	);
560
	$return       = false;
561
	if ( ! has_post_format( $post_formats ) ) {
562
		$return = true;
563
	}
564
	return $return;
565
}
566
567
/**
568
 * Remove the Hentry Class Every
569
 */
570
function lsx_remove_hentry( $classes ) {
571
	if ( 'post' !== get_post_type() ) {
572
		$classes = array_diff( $classes, array( 'hentry' ) );
573
	}
574
	return $classes;
575
}
576
add_filter( 'post_class', 'lsx_remove_hentry' );
577
578
/**
579
 * Strip Excerpts.
580
 */
581
function lsx_strip_excerpt( $content ) {
582
	if ( is_search() || is_archive() || ( is_blog_installed() && ! is_single() && ! is_page() ) ) {
583
		$content = strip_shortcodes( $content );
584
		$content = str_replace( ']]>', ']]&gt;', $content );
585
		$content = strip_tags( $content );
586
	}
587
	return $content;
588
}
589
add_filter( 'the_content', 'lsx_strip_excerpt' );
590
591
/**
592
 * Disable Gutenberg for LSX Custom Post Types.
593
 */
594
function lsx_disable_gutenberg_product_type( $is_enabled, $post_type ) {
595
	if ( 'testimonial' === $post_type || 'team' === $post_type || 'project' === $post_type ) {
596
		return false;
597
	}
598
599
	return $is_enabled;
600
}
601
add_filter( 'gutenberg_add_edit_link_for_post_type', 'lsx_disable_gutenberg_product_type', 10, 2 );
602
603
/**
604
 * Add the "Blog" link to the breadcrumbs
605
 *
606
 * @param $crumbs
607
 * @return array
608
 */
609
function lsx_breadcrumbs_blog_link( $crumbs ) {
610
611
	$show_on_front = get_option( 'show_on_front' );
612
613
	if ( 'page' === $show_on_front && ( is_category() || is_tag() ) ) {
614
615
		$blog_page = get_option( 'page_for_posts' );
616
		if ( false !== $blog_page && '' !== $blog_page ) {
617
618
			$new_crumbs    = array();
619
			$new_crumbs[0] = $crumbs[0];
620
621
			if ( function_exists( 'woocommerce_breadcrumb' ) ) {
622
				$new_crumbs[1] = array(
623
					0 => get_the_title( $blog_page ),
624
					1 => get_permalink( $blog_page ),
625
				);
626
			} else {
627
				$new_crumbs[1] = array(
628
					'text' => get_the_title( $blog_page ),
629
					'url'  => get_permalink( $blog_page ),
630
				);
631
			}
632
			$new_crumbs[2] = $crumbs[1];
633
			$crumbs        = $new_crumbs;
634
635
		}
636
	}
637
	return $crumbs;
638
}
639
add_filter( 'wpseo_breadcrumb_links', 'lsx_breadcrumbs_blog_link', 30, 1 );
640
add_filter( 'woocommerce_get_breadcrumb', 'lsx_breadcrumbs_blog_link', 30, 1 );
641
642
/**
643
 * Cover template custom styles
644
 *
645
 * @return void
646
 */
647
function lsx_cover_template_custom_enqueue() {
648
649
	if ( ! is_page_template( 'page-templates/template-cover.php' ) ) {
650
		return;
651
	}
652
653
	$cover_text_color = get_theme_mod( 'lsx_cover_template_overlay_text_color' );
654
655
	$color_overlay_opacity  = get_theme_mod( 'lsx_cover_template_overlay_opacity' );
656
	$color_overlay_opacity  = ( false === $color_overlay_opacity ) ? 80 : $color_overlay_opacity;
657
	$color_overlay_opacity  = $color_overlay_opacity / 100;
658
	$color_overlay_classes .= $color_overlay_opacity;
0 ignored issues
show
Bug introduced by
The variable $color_overlay_classes does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
659
660
	$custom_css       = ".page-template-template-cover .entry-header .entry-title, .post-template-template-cover .entry-header .entry-title, .post-template-template-cover #primary .entry-categories-inner a, .page-template-template-cover #primary .entry-header *, .post-template-template-cover #primary .entry-header * {color: {$cover_text_color};} .page-template-template-cover .cover-header .cover-header-inner-wrapper .cover-header-inner .cover-color-overlay, .page-template-template-cover .cover-header .cover-header-inner-wrapper .cover-header-inner .cover-color-overlay::before, .post-template-template-cover .cover-header .cover-header-inner-wrapper .cover-header-inner .cover-color-overlay, .post-template-template-cover .cover-header .cover-header-inner-wrapper .cover-header-inner .cover-color-overlay::before {opacity: {$color_overlay_opacity};}";
661
	wp_add_inline_style( 'lsx_main', $custom_css );
662
663
}
664
add_action( 'wp_enqueue_scripts', 'lsx_cover_template_custom_enqueue' );
665
 
666
/**
667
 * Determines if the request is an REST API request.
668
 *
669
 * @return bool True if it's a REST API request, false otherwise.
670
 */
671
function lsx_is_rest_api_request() {
672
	$rest_helper = LSX_Rest_Helper::get_instance();
673
	return $rest_helper->is_rest_api_request();
674
}
675