WordPress как на ладони

Как безопасно (правильно) добавить js на страницу?

Есть необходимость добавить js код прямо на страницу. Как это правильно и безопасно сделать?

0
SanSanych
5.5 лет назад
  • 0
    Kama9618

    Вариант 1

    Если добавляемый код зависит от какого-то другого скрипта, например jquery, то правильнее всего юзать функцию wp_add_inline_script().

    add_action('wp_enqueue_scripts', function(){
    	wp_enqueue_script('my_scripts', get_stylesheet_directory_uri() .'/my_scripts.js' );
    
    	// добавим произвольный код
    	wp_add_inline_script('my_scripts', 'alert("Привет!");');
    });
    
    /* Получим в HTML коде
    <script type='text/javascript' src='http://example.com/wp-content/themes/mytheme/my_scripts.js'></script>
    <script type='text/javascript'>
    alert("Привет!");
    </script>
    */

    Вариант 2

    Если код ни от чего не зависит, то используй любой хук, например wp_footer и через него добавляй тег <script> с JS кодом внутри.

    <?php
    add_action( 'wp_footer', 'my_wp_footer_js' );
    function my_wp_footer_js(){
    	?>
    	<script>
    		var my_var = 'скрипт работает!';
    		console.log( my_var );
    	</script>
    	<?php
    }
    Комментировать
  • 0

    Самое простое:

    открыть файл footer.php в папке темы и в писать перед тегом

    <script>
    
    тут ваш код javascript
    
    </script>

    Сохранить файл footer.php

    Но нужно как все делают:

    в function.php в папке темы

    /**
    Создать и сохранить файл в папке вашей темы my_javascript.js
    для удобства можно его положить в папку js
    
    Путь будет  js/my_javascript.js
    **/
    
    wp_enqueue_script( 'my-bootstrapjs', get_template_directory_uri() . '/js/my_javascript.js', array( 'jquery' ) );
    
    //array( 'jquery' ) что бы загружать ваш код ПОСЛЕ того как будет добавлен jquery
    
    Kama 5.5 лет назад

    Совать код в файл так вот не очень логично... Но можно конечно если это мини-проект типа сайт визитка...

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация