Intereting Posts
Могу ли я интегрировать Google Analytics с моим блогом, размещенным на wordpress.com? Включить HTML-файл шаблона в wp-mail Отключение визуального редактора на определенной должности Как отправить данные формы из WordPress (Meta Box) в службу OData? Как пропустить nonce? Как обновить WordPress с последней версии Как удалить запись «Создать новую запись» для пользовательского типа сообщения? Как изменить атрибуты shortcode с данными из текущего сообщения Редактировать / удалить wp_dashboard_recent_drafts () Пользовательский запрос в верхней части страницы поиска архива, аргументы переопределены Отображение удаленных данных внутри темы admin Самый быстрый способ создания уникального идентификационного номера при регистрации пользователя Можно ли сохранить / изменить сообщение без вызова действия «save_post»? Multisite застрял на 1 МБ для максимального размера файла Как изменить язык страницы «Сбросить пароль»

Используйте разные файлы javascript для каждой страницы на веб-сайте

В настоящее время я пытаюсь создать свою первую тему на wordpress. Я размещаю его локально, пока не смогу заставить все это работать, а затем я буду использовать тему на веб-сайте.

Все было здорово, пока я не добрался до javascript. На каждой странице темы есть поле счетчика символов, которое подсчитывает счетчики, когда пользователь вводит их. У каждого из этих ящиков есть собственный файл javascript.

Я помещаю один файл javascript в файл header.php, и эта страница, использующая этот файл, работает (домашняя страница), но я хочу иметь возможность создавать разные шаблоны страниц и на этих шаблонах использовать разные файлы?

Это возможно.

(Не уверен, что я объяснил это достаточно хорошо, поскольку я сказал, что я новичок во всей теме развития WordPress)

Заранее спасибо, и обязательно заинтересуйтесь более подробной информацией.

<?php function themeslug_enqueue_script() { wp_enqueue_script( 'my-js', '/js/char-counter.min.js', false ); } add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_script' ); // Register Custom Navigation Walker require_once('wp_bootstrap_navwalker.php'); // Theme Support function wpb_theme_setup(){ // Nav Menu register_nav_menus(array( 'primary' => __('Primary Menu ') )); } add_action('after_setup_theme', 'wpb_theme_setup'); // Register scripts/styles. They can be optionally enqueued later on. add_action( 'wp_loaded', 'wpse248829_register_scripts' ); function wpse248829_register_scripts() { wp_register_script( 'character-counter-script-js', get_template_directory_uri() . 'http://localhost/mysite/wp-content/themes/char-counter/js/char-counter.min.js', array( 'jquery' ), true ); wp_register_script( 'tweet-counter', get_template_directory_uri() . 'http://localhost/mysite/wp-content/themes/char-counter/js/tweet-counter.min.js', array(), true ); wp_register_script( 'title-tag-counter-script', get_template_directory_uri() . 'http://localhost/mysite/wp-content/themes/char-counter/js/title-tag.min.js', array(), true ); wp_register_script( 'description-counter-script', get_template_directory_uri() . 'http://localhost/mysite/wp-content/themes/char-counter/js/description-tag.min.js', array(), true ); } // Enqueue scripts/styles. add_action( 'wp_enqueue_scripts', 'wpse248829_enqueue_scripts' ); function wpse248829_enqueue_scripts() { // Load everywhere. wp_enqueue_style( 'style', get_stylesheet_uri() ); wp_enqueue_script( 'script', get_template_directory_uri() . '/js/jquery.min.js', array ( 'jquery' ), 1.1, true); // Only enqueue scripts/styles on static front page. if ( is_front_page() ) { wp_enqueue_script( 'character-counter-script-js' ); } if ( is_page_template( 'tweet-template.php' ) ) { wp_enqueue_script( 'tweet-counter' ); } if ( is_page_template( 'title-tag-template.php' ) ) { wp_enqueue_script( 'title-tag-counter-script' ); } if ( is_page_template( 'description-tag-template.php' ) ) { wp_enqueue_script( 'description-counter-script' ); } } 

Вот как выглядит мой файл functions.php

  <!DOCTYPE html> <html dir="ltr" lang="en-GB" prefix="og: http://ogp.me/ns#"> <head> <meta charset="<?php bloginfo('charset'); ?>"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap Core CSS --> <link href="<?php bloginfo('template_url') ?>/css/bootstrap.css" rel="stylesheet"> <!-- Custom Fonts --> <link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Lato:400,700,900' rel='stylesheet' type='text/css'> <link href="//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css" rel="stylesheet"> <!-- Theme CSS --> <link rel="shortcut icon" href="/img/favicon.ico"> <script src="//load.sumome.com/" data-sumo-site-id="63887403fa39b3ec361069237f61eca50baf36e10e2973ac54b998b5095b3bb2" async="async"></script> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> <title><?php wp_title(''); ?></title> <?php wp_head(); ?> </head> <body itemscope itemtype="http://schema.org/WebPage"> <div id="wrapper" class="clearfix" itemprop="mainContentOfPage"> <nav id="mainNav" class="navbar navbar-default navbar-static-top"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <?php if ( get_theme_mod( 'm1_logo' ) ) : ?> <a href="<?php echo esc_url( home_url( '/' ) ); ?>" id="site-logo" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"> <img src="<?php echo get_theme_mod( 'm1_logo' ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>"> </a> <?php else : ?> <hgroup> <h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1> <p class="site-description"><?php bloginfo( 'description' ); ?></p> </hgroup> <?php endif; ?> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <?php wp_nav_menu( array( 'menu' => 'primary', 'theme_location' => 'primary', 'depth' => 2, 'container' => 'div', 'container_class' => 'collapse navbar-collapse', 'container_id' => 'bs-example-navbar-collapse-1', 'menu_class' => 'nav navbar-nav', 'fallback_cb' => 'wp_bootstrap_navwalker::fallback', 'walker' => new wp_bootstrap_navwalker()) ); ?> </ul> </div> <!-- /.navbar-collapse --> </div> <!-- /.container-fluid --> </nav> 

Это мой файл header.php

Solutions Collecting From Web of "Используйте разные файлы javascript для каждой страницы на веб-сайте"

Я помещаю один файл javascript в файл header.php, и эта страница, использующая этот файл, работает (домашняя страница)

Не делай этого. wp_enqueue_script() этого используйте wp_enqueue_script() .

Вы можете использовать условные теги для загрузки сценариев и стилей в нужные места. Например, чтобы проверить, используется ли конкретный шаблон страницы, вы должны использовать is_page_template() .

Скрипты и стили можно зарегистрировать на wp_loaded hook, а затем wp_enqueue_scripts очередь на wp_enqueue_scripts hook:

 // Register scripts/styles. They can be optionally enqueued later on. add_action( 'wp_loaded', 'wpse248829_register_scripts' ); function wpse248829_register_scripts() { wp_register_script( 'character-counter-script-js', get_template_directory_uri() . '/js/char-counter.min.js', array( 'jquery' ), false, true ); wp_register_script( 'tweet-counter', get_template_directory_uri() . '/js/tweet-counter.min.js', array( 'jquery' ), false, true ); wp_register_script( 'title-tag-counter-script', get_template_directory_uri() . '/char-counter/js/title-tag.min.js', array( 'jquery' ), false, true ); wp_register_script( 'description-counter-script', get_template_directory_uri() . '/js/description-tag.min.js', array( 'jquery' ), false, true ); } // Enqueue scripts/styles. add_action( 'wp_enqueue_scripts', 'wpse248829_enqueue_scripts' ); function wpse248829_enqueue_scripts() { // Load everywhere. wp_enqueue_style( 'style', get_stylesheet_uri() ); // Probably not needed, because it was already specified as a dependency. // wp_enqueue_script( 'jquery' ); // Only enqueue scripts/styles on static front page. if ( is_front_page() ) { wp_enqueue_script( 'character-counter-script-js' ); } if ( is_page_template( 'tweet-template.php' ) ) { wp_enqueue_script( 'tweet-counter' ); } if ( is_page_template( 'title-tag-template.php' ) ) { wp_enqueue_script( 'title-tag-counter-script' ); } if ( is_page_template( 'description-tag-template.php' ) ) { wp_enqueue_script( 'description-counter-script' ); } }