• Поискал в интернете примеры, нашел только для постов, адаптировал для комментариев, но не работает:

    add_filter( 'comment_text', 'do_shortcode' );
    add_action( 'wp_enqueue_scripts', 'custom_shortcode_scripts');
    function custom_shortcode_scripts() {
    	global $comment;
    	if( has_shortcode( $comment->comment_text, 'gallery') ) {
    		wp_enqueue_script( 'custom-script');
    	}
    }

    Что в нем не так? Причем оригинал кода для постов работает, скрипт загружается если есть шорткод в записи, а в комментариях ни в какую не хочет работать… Помогите, пожалуйста 🙂

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • global $comment;

    Почему Вы решили, что при первичной выборке в глобальную переменную $comment что-то пишется?
    Скорее всего, нужно получить все комментарии к текущему посту (глобальная $post) и парсить их на наличие шорткода.

    Юрий, я уже пробовал и так:

    global $post, $comment;

    но тоже не работает.

    Может есть еще варианты, как реализовать задумку?

    
    function add_my_script( $comment_text ) {
        if( has_shortcode( $comment_text, 'gallery') ) {
            wp_enqueue_script( 'custom-script');
        }
        return $comment_text;
    }
    add_filter( 'comment_text', 'add_my_script' );
    

    Flector, не знаю в чем причина, но этот вариант тоже не работает…

    Flector, не знаю в чем причина, но этот вариант тоже не работает…

    ну вероятно потому, что фильтр на comment_text срабатывает уже после того, как отработают экшены на wp_enqueue_scripts.

    в таком случае вам ничего не остается, как получать весь список комментов и проверять его вручную. ну в смысле в цикле.

    
    function custom_shortcode_scripts() {
    	global $post;
            //$post есть - получаем для него комменты, проверяем их в цикле на наличие шорткода
    }
    add_action( 'wp_enqueue_scripts', 'custom_shortcode_scripts');
    

    Спасибо, буду пробовать!

    Ничего не получается, всяко пробовал уже 🙁

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Как загружать скрипт только при наличии шорткода в комментариях?» закрыта для новых ответов.