Как загрузить пользовательские скрипты и стили для страницы?

Для разных страниц часто требуется различный набор сценариев и стилей для них.

Я использую functions.php и конструкцию для загрузки сценариев и стилей:

function load_assets() { wp_enqueue_style( 'styles', get_template_directory_uri() . '/css/styles.css'); wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js'); } add_action( 'wp_enqueue_scripts', 'load_assets' ); 

Я знаю, что могу поставить некоторые условия здесь следующим образом:

 is_page() 

но есть ли лучший способ?

Предложение:

Можно ли использовать wp_register_script () для таргетинга на определенные страницы?

Solutions Collecting From Web of "Как загрузить пользовательские скрипты и стили для страницы?"

Да, вы можете добавить условные теги к действию wp_enqueue_scripts . См. Примеры ниже:

 function load_assets() { wp_enqueue_style( 'styles', get_template_directory_uri() . '/css/styles.css'); // loads on any 'page' post type if( is_page() ){ wp_enqueue_script('main-js', get_template_directory_uri() . '/js/main.js'); } // only loads on the page with a slug of 'home' if( is_page('home') ){ wp_enqueue_script('home-js', get_template_directory_uri() . '/js/home.js'); } } add_action( 'wp_enqueue_scripts', 'load_assets' ); 

Другие примеры использования is_page() см. На странице codex: https://codex.wordpress.org/Function_Reference/is_page

Для администратора вы можете сделать это.

 function load_assets( $hook ) { global $post; if ( $hook == 'post-new.php' || $hook == 'post.php' ) { // enqueue here } } add_action( 'admin_enqueue_scripts', 'load_assets', 10, 1 );