This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
1 | <?php |
||||
2 | /** |
||||
3 | * LSX functions and definitions - Layout. |
||||
4 | * |
||||
5 | * @package lsx |
||||
6 | * @subpackage layout |
||||
7 | */ |
||||
8 | |||||
9 | if ( ! defined( 'ABSPATH' ) ) { |
||||
10 | exit; |
||||
11 | } |
||||
12 | |||||
13 | if ( ! function_exists( 'lsx_layout_selector' ) ) : |
||||
14 | /** |
||||
15 | * Layout selector. |
||||
16 | * |
||||
17 | * @package lsx |
||||
18 | * @subpackage layout |
||||
19 | */ |
||||
20 | function lsx_layout_selector( $class, $area = 'site' ) { |
||||
21 | $return_class = ''; |
||||
22 | $layout = get_theme_mod( 'lsx_layout', '1c' ); |
||||
23 | $layout = apply_filters( 'lsx_layout', $layout ); |
||||
24 | $default_size = 'sm'; |
||||
25 | $size = apply_filters( 'lsx_bootstrap_column_size', $default_size ); |
||||
26 | |||||
27 | switch ( $layout ) { |
||||
28 | case '1c': |
||||
29 | $main_class = 'col-' . $size . '-12'; |
||||
30 | $sidebar_class = 'col-' . $size . '-12'; |
||||
31 | break; |
||||
32 | case '2cr': |
||||
33 | $main_class = 'col-' . $size . '-8'; |
||||
34 | $sidebar_class = 'col-' . $size . '-4'; |
||||
35 | break; |
||||
36 | case '2cl': |
||||
37 | $main_class = 'col-' . $size . '-8 col-' . $size . '-push-4'; |
||||
38 | $sidebar_class = 'col-' . $size . '-4 col-' . $size . '-pull-8'; |
||||
39 | break; |
||||
40 | default: |
||||
41 | $main_class = 'col-' . $size . '-8'; |
||||
42 | $sidebar_class = 'col-' . $size . '-4'; |
||||
43 | break; |
||||
44 | } |
||||
45 | |||||
46 | if ( 'main' === $class ) { |
||||
47 | $return_class = apply_filters( 'lsx_layout_selector', $main_class, $class, $layout, $size ); |
||||
48 | } |
||||
49 | |||||
50 | if ( 'sidebar' === $class ) { |
||||
51 | $return_class = apply_filters( 'lsx_layout_selector', $sidebar_class, $class, $layout, $size ); |
||||
52 | } |
||||
53 | |||||
54 | return $return_class; |
||||
55 | } |
||||
56 | endif; |
||||
57 | |||||
58 | if ( ! function_exists( 'lsx_main_class' ) ) : |
||||
59 | /** |
||||
60 | * .main classes. |
||||
61 | * |
||||
62 | * @package lsx |
||||
63 | * @subpackage layout |
||||
64 | */ |
||||
65 | function lsx_main_class() { |
||||
66 | return lsx_layout_selector( 'main' ); |
||||
67 | } |
||||
68 | endif; |
||||
69 | |||||
70 | if ( ! function_exists( 'lsx_sidebar_class' ) ) : |
||||
71 | /** |
||||
72 | * .sidebar classes. |
||||
73 | * |
||||
74 | * @package lsx |
||||
75 | * @subpackage layout |
||||
76 | */ |
||||
77 | function lsx_sidebar_class() { |
||||
78 | return lsx_layout_selector( 'sidebar' ); |
||||
79 | } |
||||
80 | endif; |
||||
81 | |||||
82 | if ( ! function_exists( 'lsx_header_classes' ) ) : |
||||
83 | /** |
||||
84 | * Output the classes for the header. |
||||
85 | * |
||||
86 | * @package lsx |
||||
87 | * @subpackage layout |
||||
88 | */ |
||||
89 | function lsx_header_classes( $additional = false ) { |
||||
90 | $classes = 'banner navbar navbar-default'; |
||||
91 | |||||
92 | if ( false !== $additional ) { |
||||
93 | $classes .= ' ' . $additional; |
||||
94 | } |
||||
95 | |||||
96 | echo esc_attr( $classes ); |
||||
97 | } |
||||
98 | endif; |
||||
99 | |||||
100 | if ( ! function_exists( 'lsx_top_menu_classes' ) ) : |
||||
101 | /** |
||||
102 | * Output the classes for the top-menu. |
||||
103 | * |
||||
104 | * @package lsx |
||||
105 | * @subpackage layout |
||||
106 | */ |
||||
107 | function lsx_top_menu_classes( $additional = false ) { |
||||
108 | $classes = 'top-menu-default'; |
||||
109 | |||||
110 | if ( false !== $additional ) { |
||||
111 | $classes .= ' ' . $additional; |
||||
112 | } |
||||
113 | |||||
114 | echo esc_attr( $classes ); |
||||
115 | } |
||||
116 | endif; |
||||
117 | |||||
118 | if ( ! function_exists( 'lsx_post_wrapper_class' ) ) : |
||||
119 | /** |
||||
120 | * Output the classes for the top-menu. |
||||
121 | * |
||||
122 | * @package lsx |
||||
123 | * @subpackage layout |
||||
124 | */ |
||||
125 | function lsx_post_wrapper_class() { |
||||
126 | return apply_filters( 'lsx_post_wrapper_class', '' ); |
||||
127 | } |
||||
128 | endif; |
||||
129 | |||||
130 | |||||
131 | |||||
132 | if ( ! function_exists( 'lsx_add_footer_sidebar_area' ) ) : |
||||
133 | /** |
||||
134 | * Output the Footer CTA and/pr Footer Widgets. |
||||
135 | * |
||||
136 | * @package lsx |
||||
137 | * @subpackage layout |
||||
138 | */ |
||||
139 | function lsx_add_footer_sidebar_area() { |
||||
140 | if ( is_active_sidebar( 'sidebar-footer-cta' ) ) : ?> |
||||
141 | <div id="footer-cta"> |
||||
142 | <div class="container"> |
||||
143 | <div class="lsx-full-width"> |
||||
144 | <div class="lsx-hero-unit"> |
||||
145 | <?php dynamic_sidebar( 'sidebar-footer-cta' ); ?> |
||||
146 | </div> |
||||
147 | </div> |
||||
148 | </div> |
||||
149 | </div> |
||||
150 | <?php endif; ?> |
||||
151 | |||||
152 | <?php if ( is_active_sidebar( 'sidebar-footer' ) ) : ?> |
||||
153 | <div id="footer-widgets"> |
||||
154 | <div class="container"> |
||||
155 | <div class="row"> |
||||
156 | <?php dynamic_sidebar( 'sidebar-footer' ); ?> |
||||
157 | </div> |
||||
158 | </div> |
||||
159 | </div> |
||||
160 | <?php |
||||
161 | endif; |
||||
162 | } |
||||
163 | add_action( 'lsx_footer_before', 'lsx_add_footer_sidebar_area' ); |
||||
164 | endif; |
||||
165 | |||||
166 | if ( ! function_exists( 'lsx_global_header' ) ) : |
||||
167 | /** |
||||
168 | * Displays the global header. |
||||
169 | * |
||||
170 | * @package lsx |
||||
171 | * @subpackage layout |
||||
172 | */ |
||||
173 | function lsx_global_header() { |
||||
174 | $show_on_front = get_option( 'show_on_front' ); |
||||
175 | $queried_object = get_queried_object(); |
||||
176 | $default_size = 'sm'; |
||||
177 | $size = apply_filters( 'lsx_bootstrap_column_size', $default_size ); |
||||
178 | |||||
179 | // Cart and Checkout won't have banners of any kind. |
||||
180 | if ( function_exists( 'is_woocommerce' ) && ( is_checkout() || is_cart() ) ) { |
||||
181 | return; |
||||
182 | } |
||||
183 | |||||
184 | // Product pages have their own banner function 'lsx_page_banner()'. |
||||
185 | if ( function_exists( 'is_woocommerce' ) && ( is_product() ) ) { |
||||
186 | return; |
||||
187 | } |
||||
188 | |||||
189 | // Events wont have banners. |
||||
190 | if ( function_exists( 'tribe_is_event' ) && ( ! is_tag() ) && ( tribe_is_event() || tribe_is_organizer() || tribe_is_venue() ) ) { |
||||
191 | return; |
||||
192 | } |
||||
193 | |||||
194 | if ( function_exists( 'lsx_is_rest_api_request' ) && lsx_is_rest_api_request() ) { |
||||
195 | return; |
||||
196 | } |
||||
197 | |||||
198 | if ( is_page() && ( 'page' !== $show_on_front || ! is_front_page() ) ) : |
||||
199 | if ( class_exists( 'LSX_Banners' ) && empty( apply_filters( 'lsx_banner_plugin_disable', false ) && ( ! has_post_thumbnail() ) ) ) { |
||||
200 | return; |
||||
201 | } |
||||
202 | ?> |
||||
203 | <div class="archive-header-wrapper banner-page col-<?php echo esc_attr( $size ); ?>-12"> |
||||
204 | <?php lsx_global_header_inner_bottom(); ?> |
||||
205 | <header class="archive-header"> |
||||
206 | <h1 class="archive-title"><?php the_title(); ?></h1> |
||||
207 | </header> |
||||
208 | |||||
209 | </div> |
||||
210 | <?php |
||||
211 | |||||
212 | elseif ( is_single() && ! is_singular( 'post' ) ) : |
||||
213 | ?> |
||||
214 | <div class="archive-header-wrapper banner-single col-<?php echo esc_attr( $size ); ?>-12"> |
||||
215 | <?php lsx_global_header_inner_bottom(); ?> |
||||
216 | <header class="archive-header"> |
||||
217 | <h1 class="archive-title"><?php echo wp_kses_post( apply_filters( 'lsx_global_header_title', get_the_title() ) ); ?></h1> |
||||
218 | </header> |
||||
219 | |||||
220 | </div> |
||||
221 | <?php |
||||
222 | elseif ( is_search() ) : |
||||
223 | ?> |
||||
224 | <div class="archive-header-wrapper banner-search col-<?php echo esc_attr( $size ); ?>-12"> |
||||
225 | <?php lsx_global_header_inner_bottom(); ?> |
||||
226 | <header class="archive-header"> |
||||
227 | <h1 class="archive-title"> |
||||
228 | <?php |
||||
229 | printf( |
||||
230 | /* Translators: %s: search term/query */ |
||||
231 | esc_html__( 'Search Results for: %s', 'lsx' ), |
||||
232 | '<span>' . get_search_query() . '</span>' |
||||
233 | ); |
||||
234 | ?> |
||||
235 | </h1> |
||||
236 | </header> |
||||
237 | |||||
238 | </div> |
||||
239 | <?php |
||||
240 | elseif ( is_author() ) : |
||||
241 | $author = get_the_author(); |
||||
242 | $author_avatar = get_avatar( get_the_author_meta( 'ID' ), 256 ); |
||||
243 | $author_bio = get_the_archive_description(); |
||||
244 | ?> |
||||
245 | <div class="archive-header-wrapper banner-archive-author col-<?php echo esc_attr( $size ); ?>-12"> |
||||
246 | <?php lsx_global_header_inner_bottom(); ?> |
||||
247 | <header class="archive-header"> |
||||
248 | <h1 class="archive-title"><?php the_archive_title(); ?></h1> |
||||
249 | </header> |
||||
250 | |||||
251 | </div> |
||||
252 | <?php |
||||
253 | elseif ( is_archive() ) : |
||||
254 | ?> |
||||
255 | <div class="archive-header-wrapper banner-archive col-<?php echo esc_attr( $size ); ?>-12"> |
||||
256 | <?php lsx_global_header_inner_bottom(); ?> |
||||
257 | <header class="archive-header"> |
||||
258 | <h1 class="archive-title"> |
||||
259 | <?php if ( has_post_format() && ! is_category() && ! is_tag() && ! is_date() && ! is_tax( 'post_format' ) ) { ?> |
||||
260 | <?php the_archive_title( esc_html__( 'Type:', 'lsx' ) ); ?> |
||||
261 | <?php } else { ?> |
||||
262 | <?php echo wp_kses_post( apply_filters( 'lsx_global_header_title', get_the_archive_title() ) ); ?> |
||||
263 | <?php } ?> |
||||
264 | </h1> |
||||
265 | |||||
266 | <?php |
||||
267 | if ( false === apply_filters( 'lsx_display_global_header_description', false ) ) { |
||||
268 | the_archive_description(); |
||||
269 | } |
||||
270 | ?> |
||||
271 | </header> |
||||
272 | </div> |
||||
273 | <?php |
||||
274 | elseif ( 'page' === $show_on_front && (int) get_option( 'page_for_posts' ) === $queried_object->ID ) : |
||||
275 | ?> |
||||
276 | <div class="archive-header-wrapper banner-page col-<?php echo esc_attr( $size ); ?>-12"> |
||||
277 | <?php lsx_global_header_inner_bottom(); ?> |
||||
278 | <header class="archive-header"> |
||||
279 | <h1 class="archive-title"><?php esc_html_e( 'Blog', 'lsx' ); ?></h1> |
||||
280 | </header> |
||||
281 | |||||
282 | </div> |
||||
283 | <?php |
||||
284 | elseif ( ! is_singular( 'post' ) ) : |
||||
285 | // Display only the breadcrumbs. |
||||
286 | ?> |
||||
287 | <div class="archive-header-wrapper banner-singular col-<?php echo esc_attr( $size ); ?>-12"> |
||||
288 | <?php lsx_global_header_inner_bottom(); ?> |
||||
289 | </div> |
||||
290 | <?php |
||||
291 | elseif ( ( true === apply_filters( 'lsx_global_header_disable', false ) ) && ( ! is_search() ) ) : |
||||
292 | // Display only the breadcrumbs. |
||||
293 | ?> |
||||
294 | <div class="archive-header-wrapper banner-global col-<?php echo esc_attr( $size ); ?>-12"> |
||||
295 | <?php lsx_global_header_inner_bottom(); ?> |
||||
296 | </div> |
||||
297 | <?php |
||||
298 | endif; |
||||
299 | } |
||||
300 | add_action( 'lsx_content_wrap_before', 'lsx_global_header' ); |
||||
301 | endif; |
||||
302 | |||||
303 | if ( ! function_exists( 'lsx_author_extra_info' ) ) : |
||||
304 | /** |
||||
305 | * Displays the author extra info. |
||||
306 | * |
||||
307 | * @package lsx |
||||
308 | * @subpackage layout |
||||
309 | */ |
||||
310 | function lsx_author_extra_info() { |
||||
311 | $default_size = 'sm'; |
||||
312 | $size = apply_filters( 'lsx_bootstrap_column_size', $default_size ); |
||||
313 | |||||
314 | if ( is_author() ) : |
||||
315 | $author_id = get_the_author_meta( 'ID' ); |
||||
316 | $author = get_the_author(); |
||||
317 | $author_avatar = get_avatar( $author_id, 400 ); |
||||
318 | $author_bio = get_the_archive_description(); |
||||
319 | $author_url = get_the_author_meta( 'url', $author_id ); |
||||
320 | $author_email = get_the_author_meta( 'email', $author_id ); |
||||
321 | $author_facebook = get_the_author_meta( 'facebook', $author_id ); |
||||
322 | $author_linkedin = get_the_author_meta( 'linkedin', $author_id ); |
||||
323 | $author_twitter = get_the_author_meta( 'twitter', $author_id ); |
||||
324 | ?> |
||||
325 | <div class="col-<?php echo esc_attr( $size ); ?>-12"> |
||||
326 | <div class="archive-author-data"> |
||||
327 | <div class="row"> |
||||
328 | <?php if ( ! empty( $author_avatar ) ) : ?> |
||||
329 | <div class="col-xs-12 col-sm-4 col-md-3"> |
||||
330 | <figure class="archive-author-avatar"><?php echo wp_kses_post( $author_avatar ); ?></figure> |
||||
331 | </div> |
||||
332 | <?php endif; ?> |
||||
333 | <div class="col-xs-12 col-sm-8 col-md-9"> |
||||
334 | <a class="back-to-blog" href="<?php echo ( esc_url( get_post_type_archive_link( 'post' ) ) ); ?>"><?php echo esc_html__( 'Back To Blog', 'lsx' ); ?></a> |
||||
335 | <!-- Name --> |
||||
336 | <h2 class="archive-author-title"> |
||||
337 | <?php |
||||
338 | if ( '' !== $author ) { |
||||
339 | echo esc_html( $author ); |
||||
340 | } |
||||
341 | ?> |
||||
342 | </h2> |
||||
343 | <!-- Social --> |
||||
344 | <?php if ( ! empty( $author_url ) || ! empty( $author_email ) || ! empty( $author_facebook ) || ! empty( $author_twitter ) ) : ?> |
||||
345 | <div class="archive-author-social-links"> |
||||
346 | <?php if ( ! empty( $author_url ) ) : ?> |
||||
347 | <a href="<?php echo esc_url( $author_url ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-url"><i class="fa fa-link" aria-hidden="true"></i></a> |
||||
348 | <?php endif; ?> |
||||
349 | |||||
350 | <?php if ( ! empty( $author_email ) ) : ?> |
||||
351 | <a href="mailto:<?php echo esc_attr( $author_email ); ?>" class="archive-author-social-link archive-author-social-link-email"><i class="fa fa-envelope" aria-hidden="true"></i></a> |
||||
352 | <?php endif; ?> |
||||
353 | |||||
354 | <?php if ( ! empty( $author_facebook ) ) : ?> |
||||
355 | <a href="<?php echo esc_url( $author_facebook ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-facebook"><i class="fa fa-facebook" aria-hidden="true"></i></a> |
||||
356 | <?php endif; ?> |
||||
357 | |||||
358 | <?php if ( ! empty( $author_twitter ) ) : ?> |
||||
359 | <a href="https://twitter.com/<?php echo esc_attr( $author_twitter ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a> |
||||
360 | <?php endif; ?> |
||||
361 | |||||
362 | <?php if ( ! empty( $author_linkedin ) ) : ?> |
||||
363 | <a href="<?php echo esc_url( $author_linkedin ); ?>" target="_blank" rel="nofollow noreferrer noopener" class="archive-author-social-link archive-author-social-link-linkedin"><i class="fa fa-linkedin" aria-hidden="true"></i></a> |
||||
364 | <?php endif; ?> |
||||
365 | </div> |
||||
366 | <?php endif; ?> |
||||
367 | |||||
368 | <!-- Bio --> |
||||
369 | <?php if ( ! empty( $author_bio ) ) : ?> |
||||
370 | <p class="archive-author-bio"><?php echo wp_kses_post( $author_bio ); ?></p> |
||||
371 | <?php endif; ?> |
||||
372 | </div> |
||||
373 | </div> |
||||
374 | </div> |
||||
375 | <h2><?php echo esc_html__( 'Posts', 'lsx' ); ?></h2> |
||||
376 | </div> |
||||
377 | <?php |
||||
378 | endif; |
||||
379 | } |
||||
380 | add_action( 'lsx_content_wrap_before', 'lsx_author_extra_info', 11 ); |
||||
381 | endif; |
||||
382 | |||||
383 | if ( ! function_exists( 'lsx_post_header' ) ) : |
||||
384 | /** |
||||
385 | * Displays the post header. |
||||
386 | * |
||||
387 | * @package lsx |
||||
388 | * @subpackage layout |
||||
389 | */ |
||||
390 | function lsx_post_header() { |
||||
391 | $default_size = 'sm'; |
||||
392 | $size = apply_filters( 'lsx_bootstrap_column_size', $default_size ); |
||||
393 | |||||
394 | $disable_title = get_post_meta( get_the_ID(), 'lsx_disable_title', true ); |
||||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||||
395 | if ( 'yes' === $disable_title && is_singular( 'post' ) ) { |
||||
396 | return; |
||||
397 | } |
||||
398 | |||||
399 | if ( is_singular( 'post' ) ) : |
||||
400 | $format = get_post_format(); |
||||
401 | |||||
402 | if ( false === $format ) { |
||||
403 | $format = 'standard'; |
||||
404 | } |
||||
405 | |||||
406 | $format = lsx_translate_format_to_fontawesome( $format ); |
||||
407 | ?> |
||||
408 | <div class="archive-header-wrapper banner-post-header col-<?php echo esc_attr( $size ); ?>-12"> |
||||
409 | <header class="archive-header"> |
||||
410 | <h1 class="archive-title"> |
||||
411 | <i class="format-link fa fa-<?php echo esc_attr( $format ); ?>"></i> |
||||
412 | <span><?php the_title(); ?></span> |
||||
413 | </h1> |
||||
414 | </header> |
||||
415 | </div> |
||||
416 | <?php |
||||
417 | endif; |
||||
418 | } |
||||
419 | add_action( 'lsx_entry_top', 'lsx_post_header' ); |
||||
420 | endif; |
||||
421 | |||||
422 | if ( ! function_exists( 'lsx_header_search_form' ) ) : |
||||
423 | /** |
||||
424 | * Add a search form to just above the nav menu. |
||||
425 | * |
||||
426 | * @package lsx |
||||
427 | * @subpackage layout |
||||
428 | */ |
||||
429 | function lsx_header_search_form() { |
||||
430 | $search_form = get_theme_mod( 'lsx_header_search', false ); |
||||
431 | |||||
432 | if ( false !== $search_form || is_customize_preview() ) { |
||||
433 | get_search_form( true ); |
||||
434 | } |
||||
435 | } |
||||
436 | $mobile_header_layout = get_theme_mod( 'lsx_header_mobile_layout', 'navigation-bar' ); |
||||
437 | add_action( 'lsx_nav_before', 'lsx_header_search_form', 0 ); |
||||
438 | endif; |
||||
439 | |||||
440 | // Add entry meta to single post if active. |
||||
441 | if ( ! function_exists( 'lsx_add_entry_meta' ) ) : |
||||
442 | function lsx_add_entry_meta() { |
||||
443 | $disable_title = get_post_meta( get_the_ID(), 'lsx_disable_title', true ); |
||||
0 ignored issues
–
show
It seems like
get_the_ID() can also be of type false ; however, parameter $post_id of get_post_meta() does only seem to accept integer , maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
![]() |
|||||
444 | if ( 'yes' === $disable_title && is_singular( 'post' ) ) { |
||||
445 | return; |
||||
446 | } |
||||
447 | if ( is_single() && is_singular( 'post' ) ) { |
||||
448 | ?> |
||||
449 | <div class="entry-meta"> |
||||
450 | <?php lsx_post_meta_single_top(); ?> |
||||
451 | </div><!-- .entry-meta --> |
||||
452 | <?php |
||||
453 | } |
||||
454 | } |
||||
455 | add_action( 'lsx_entry_top', 'lsx_add_entry_meta', 999 ); |
||||
456 | endif; |
||||
457 |