Как поставить в очередь javascript в моей теме в WordPress, которую я создал? - PullRequest
0 голосов
/ 17 января 2020

Я преобразовал шаблон html, css, js в тему WordPress. Чтобы поставить в очередь мою css, она работала правильно, я просто добавил функцию в функции. php, но, чтобы поставить в очередь javascript, она не работает, я перепробовал много модификаций, но ничего не работает. Вот моя функция. php

<?php


function load_stylesheets()
{
	
	wp_register_style('normal',get_template_directory_uri() . '/css/normalize.css',  array(), 1, 'all');
	wp_enqueue_style('normal');
	
	
	
	wp_register_style('demonstration',get_template_directory_uri() . '/css/demo.css',  array(), 1, 'all');
	wp_enqueue_style('demonstration');

}
add_action('wp_enqueue_scripts','load_stylesheets');





function addjs()
{
		
	
	wp_register_script('anime', get_template_directory_uri() . '/js/anime.min.js', array(), 1,1, 1);
	wp_enqueue_script('anime');
	
	
	wp_register_script('imagesload', get_template_directory_uri() . '/js/imagesloaded.pkgd.min.js', array(), 1,1, 1);
	wp_enqueue_script('imagesload');
	
	
	wp_register_script('main', get_template_directory_uri() . '/js/main.js', array(), 1,1, 1);
	wp_enqueue_script('main');
	

		
}

Ответы [ 3 ]

0 голосов
/ 17 января 2020

Пожалуйста, попробуйте это

add_action('wp_footer','addjs');

function addjs() {

    wp_register_script('anime', get_template_directory_uri() . '/js/anime.min.js', array ('jquery'),'',true);

    wp_register_script('imagesload', get_template_directory_uri() . '/js/imagesloaded.pkgd.min.js', array ('jquery'),'',true);


    wp_register_script('main', get_template_directory_uri() . '/js/main.js', array ('jquery'),'',true);

}
0 голосов
/ 17 января 2020

wp_enqueue_scripts - это правильный хук, который нужно использовать при постановке в очередь сценариев и стилей, которые должны появляться во внешнем интерфейсе. Несмотря на название, он используется для постановки в очередь как сценариев, так и стилей.

Так что вам нужно добавить сценарии и стили внутри одной функции, или вы можете добавить еще одно действие wordpress с существующим кодом.

add_action( 'wp_enqueue_scripts', 'addjs' );

0 голосов
/ 17 января 2020

Суть в том, что вы нигде не вызываете функцию addjs. Если вы добавили:

add_action( 'wp_enqueue_scripts', 'addjs' );

Тогда это должно работать. ( Примечание: любой, для которого вышеупомянутое не работает, посмотрите на edit ниже )

Однако, есть пара вещей, на которые следует обратить внимание:

  • Убедитесь, что ваш отступ / интервал соответствует, и у вас нет посторонних пробелов после строк. Чистый код - это ключ!

  • Вам не нужно добавлять JS и CSS файлы отдельно, они оба могут обрабатываться в одном и том же add_action обратном вызове функции.

  • Если вы не занимаетесь действительно причудливыми вещами (постановка в очередь только тогда, когда на странице найден шорткод и т. Д.), wp_enqueue_{script/style} позаботится о функции wp_register_{script/style} для вас. В большинстве случаев вы можете использовать enqueue их вместо , регистрируя , а затем ставить в очередь их.

  • Взгляните на документацию и убедитесь, что ваши аргументы такие же, как те, которые принимает функция. Это предотвратит предупреждения и ошибки в более экстремальных случаях.

Вот приведенный для вас пример:

add_action( 'wp_enqueue_scripts', 'enqueue_theme_assets' );
function enqueue_theme_assets(){
    // Styles
    wp_enqueue_style( 'normal', get_template_directory_uri() . '/css/normalize.css', array(), '1.0' );
    wp_enqueue_style( 'demonstration', get_template_directory_uri() . '/css/demo.css', array(), '1.0');

    // Scripts
    wp_enqueue_script( 'anime', get_template_directory_uri() . '/js/anime.min.js', array(), '1.0', true );
    wp_enqueue_script( 'imagesload', get_template_directory_uri() . '/js/imagesloaded.pkgd.min.js', array(),'1.0', true );
    wp_enqueue_script( 'main', get_template_directory_uri() . '/js/main.js', array(), '1.0', true );
}

РЕДАКТИРОВАТЬ:

Я только что увидел ваш комментарий, что add_action( 'wp_enqueue_scripts', 'addjs' ); не работает. Взгляните на документы wp_enqueue_script(). В разделе # Usage вы заметите, что при корректном включении сценариев в ловушку wp_enqueue_scripts используются функции wp_footer() и wp_head(). используется в вашей теме, поэтому ** убедитесь, что в вашей теме вызывается wp_footer();, особенно если для аргумента $in_footer установлено значение true.

...