Ошибка 503 при попытке поставить в очередь пользовательский сценарий jQuery в WordPress - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь настроить мою самую первую пользовательскую тему WordPress. Я использую "front-page.php" для настройки стандартной целевой страницы и пытаюсь использовать несколько файлов jQuery (все они написаны в режиме совместимости). Когда файл functions.php записывается туда, где, как я ожидаю, он будет работать, он выдает ошибку 503, а сайт работает только с кодом, который, как я знаю, неверен.

Я попытался поставить в очередь против регистрации, добавления кода администратора, деактивации и повторной регистрации jquery, а также добавления всех «add_action» в одну строку. Что мне не хватает? Ни один JS еще не работал над этой темой. Вот файл functions.php:

<?php

add_theme_support( 'custom-logo' );
add_theme_support( 'custom-background' );
add_theme_support( 'title-tag' );

function modify_jquery() {
    wp_dequeue_script('jquery');
    wp_deregister_script('jquery');

    wp_register_script('jquery-custom', '//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js', false, '1.11.3', 'true');
    wp_enqueue_script('jquery-custom');
}
add_action( 'wp_enqueue_scripts', 'modify_jquery' );

function theme_scripts() {
    wp_enqueue_script( 'navbar', get_template_directory_uri() . '/scripts/navbar.js' );
    wp_enqueue_script( 'fixedheader', get_template_directory_uri() . '/scripts/fixedheader.js', array( 'jquery' ), null, true );
    wp_enqueue_script( 'skills', get_template_directory_uri() . '/scripts/skills.js', array( 'jquery' ), null, true );
}
add_action( 'wp_enqueue_scripts', 'theme_scripts' );

function theme_admin_scripts() {
    wp_enqueue_script( 'navbar', plugin_dir_url( __FILE__ ) . '/scripts/navbar.js' );
    wp_enqueue_script( 'fixedheader', plugin_dir_url( __FILE__ ) . '/scripts/fixedheader.js', array( 'jquery' ), null, true );
    wp_enqueue_script( 'skills', plugin_dir_url( __FILE__ ) . '/scripts/skills.js', array( 'jquery' ), null, true );
}
add_action( 'admin_enqueue_scripts', 'theme_admin_scripts' );

function register_navigation() {
    $args = array(
    'description'   => '',
    'class'         => '',
    'before_widget' => '',
    'after_widget'  => '',
    'before_title'  => '<h3 class="widget-title">',
    'after_title'   => '</h3>' );

  register_navigation($args);
}
add_action( 'widgets_init', 'register_navigation' );

?>

Я бы хотел, чтобы у моего сайта было навигационное меню, которое открывается при прокрутке читателя (это работало на статической странице, прежде чем я сделал это файлом темы WordPress), а также некоторые другие функции jQuery. Остальная часть сайта работает нормально, загружаются картинки и т. Д., Но я не смог успешно добавить ни один скрипт. Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 02 июня 2019

Хорошо, для начала вам не нужно перерегистрировать скрипт jQuery. Тот, который доступен по умолчанию, должен работать.

Кроме того, регистрация на admin_enqueue_scripts немного сбивает меня с толку, поскольку это регистрирует скрипт на стороне панели управления, а plugin_dir_url( __FILE__ ) полезен, если вы регистрируете скрипты из плагина.

Учитывая, что у вас есть файл jQuery по умолчанию и дескриптор не зарегистрирован, следующий код должен работать для вас.

add_action('wp_enqueue_scripts', 'theme_scripts');
function theme_scripts() {
    wp_enqueue_script('theme-navbar', get_stylesheet_directory_uri().'/scripts/navbar.js', array('jquery), $ver = false, $in_footer = true );
}

get_stylesheet_directory_uri() //points to the directory in your active theme where stylesheet is located so the path will be something like '/wp-content/themes/YOURTHEME' Просто убедитесь, что путь к сценариям указан правильно, и это должно работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...