llgruff
@llgruff
Scala

*** Как подключать скрипт только если на странице есть определенный шорткод?

Чтобы использовать jquery-ui-accordion нужно добавить на страницу javascript вида:
jQuery(function($){
	$(document).ready(function(){
		$( ".office-accordion" ).accordion({heightStyle: "content"});
	});
});

Не хочется через wp_enqueue_script() подключать отдельный файл ради 5 строчек.

Как вывести в конец страницы этот код, если на странице:
1. использован шорткод (м.б. has_shortcode)
или
2. вызван скрипт jquery-ui-accordion (м.б. wp_script_is)?

Спасибо!
  • Вопрос задан
  • 502 просмотра
Решения вопроса 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Так правильно
function custom_shortcode_scripts() {
	global $post;
	if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'custom-shortcode') ) {
		wp_enqueue_script( 'custom-script');
	}
}
add_action( 'wp_enqueue_scripts', 'custom_shortcode_scripts');


можно так

jQuery(function($){
  $(document).ready(function(){
function test(){
if( ! $( ".office-accordion" ).length ) return false;
    $( ".office-accordion" ).accordion({heightStyle: "content"});
}
test();
  });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
cesnokov
@cesnokov
<head>&nbsp;</head>
А можно в functions.php:
function has_shortcode_func($atts){
    $xhtml = '<script type="text/javascript"> jQuery(function($){ 
             jQuery(document).ready(function(){ 
             jQuery( ".office-accordion" ).accordion({heightStyle: "content"}); 
             }); });</script>';
    return $xhtml;
}
add_shortcode('has_shortcode', 'has_shortcode_func');

А на странице:
[has_shortcode]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы