• Добрый день, столкнулся с задачей вывести скрипты требуемые для работы плагина только на тех страницах, где плагин будет отображен.

    Плагин отображается при помощи шорткода.
    В настройках плагина есть возможность указать ID страниц и записей на которых будет работать плагин.

    Временным решением создано громоздкое условие вида:

    function wpcc_load_script() {
    
    	$wpcc_script_load_post 	= get_option('wpcc_script_load_post', 0);
    	$wpcc_script_load_page 	= get_option('wpcc_script_load_page', 0);
    	$arr_post = explode(',', $wpcc_script_load_post);
    	$arr_page = explode(',', $wpcc_script_load_page);
    
    	if(
    		( (is_single() AND in_array(get_the_ID(), $arr_post)) OR (is_single() AND $wpcc_script_load_post == '0') )
    		OR
    		( (is_page() AND in_array(get_the_ID(), $arr_page)) OR (is_page() AND $wpcc_script_load_page == '0') )
    		OR
    		( $wpcc_script_load_post == '0' AND $wpcc_script_load_page == '0' )
    	)
    	{
    		wp_enqueue_script('jquery-ui-core');
    		wp_enqueue_script('jquery-ui-slider');
    	}
    
    }
    add_action('wp_enqueue_scripts', 'wpcc_load_script');

    Есть ли более разумное решение поставленной задачи?

    Спасибо!

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Плагин отображается при помощи шорткода.

    Я бы использовал эту функцию https://codex.wordpress.org/Function_Reference/has_shortcode

    Спасибо, это то, что я спросил, и вполне подходит для решения.

    Но в случаи когда плагин вставляем через функцию do_shortcode определить не выйдет. Или через виджет.

    Возможно есть подобная функция для записей и страниц: add_action(‘admin_print_scripts-‘ . $page, ‘my_scripts’); которая подгружает скрипты в админке только на страницах плагина?

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Подключение скриптов на нужных страницах, записях» закрыта для новых ответов.