Поддержка Проблемы и решения Относительные пути. javascript

  • Решено Lage44

    (@lage44)


    Доброго времени суток. Пытаюсь подключить JS/jQuery галерею ( http://efimov.ws/assets/files/develop/2011/03/galleria/themes/classic/classic-demo.html ) к одной странице. Ссылку на jQuery прямая, ссылка на один из файлов .js сделал прямой. Суть в том, что еще несколько файлов, таких как css и js должны находится в той же папке что и страница(которая сгенерирована WP). Шаблон страницы имеет название «cat9» и лежит в корне темы. Туда же копирую необходимые файлы — результата ноль. Очень надеюсь на вашу помощь.

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Здравствуйте… Не понятно зачем вам нужно что бы css и js файлы находились в той же папке что и сама страница… Вы наверняка знаете что все страницы/записи у ВП вертуальные, то есть физически их не существует. (Сейчас я имею ввиду, что если адрес страницы к примеру http://site.ru/page , то по факту в корне не создаётся файл с названием page)
    Так вот, самый простой, в вашем случае, вариант это добавить ваш css и js код прямо в шаблон выводимой страницы. Сразу после вызова <?php get_header();?> вставьте в теги <style></style> ваш css код, а перед выводом кода <?php get_footer();?> добавьте в тег <script type="text\javascript"></script> ваш js код

    Ещё раз повторюсь, что это самый простой, но не совсем правильный для WP способ добавления стилей и яваскриптов.

    Разумеется что я знаю, что страницы виртуальные, в этом и проблема. Я уже пробовал подключать все файлы напрямую в шаблоне, все равно не выходит добиться работоспособности. Перепробовал все, что в моих силах — работает только со статической страницей.

    PS:Вот прямая ссылка на архив с галереей ( http://kotweb.ru/go?a%3AaHR0cDovL2VmaW1vdi53cy9hc3NldHMvZmlsZXMvZGV2ZWxvcC8yMDExLzAzL2dhbGxlcmlhLTEuMi4yLnppcA%3D%3D )

    В общем если вы хотите что бы эти стили и яваскрипт подключались именно на определённой странице то вам нужно в файле functions.php который находится в папке с темой, подключить эти стили и скрипты, функциями wp_enqueue_script() и wp_enqueue_style(), ну и ещё для условия нужно использовать функцию is_page_template()
    К примеру файл темы который отвечает за вывод галереи называется gallery.php и находиться в корне темы, файл скрипта находиться в папке js и файл стилей находиться в папке css, то функция будет выглядеть так:

    function add_js_css_to_gallery_page() {
     if ( is_page_template('gallery.php') ) {
      wp_enqueue_style( 'gallery-style', get_template_directory_uri() . '/css/gallery.css' );
    	wp_enqueue_script( 'gallery-script', get_template_directory_uri() . '/js/gallery.js' );
     }
    }
    add_action( 'wp_enqueue_scripts', 'add_js_css_to_gallery_page' );

    Не копируйте код целиком. Это только пример. Пути не будут совпадать, скорей всего.

    Создал файл functions.php, внес туда ваш код, подправив пути к файлам. Теперь он выглядит так:

    <?php
    
    function add_js_css_to_gallery_page() {
     if ( is_page_template('gallery.php') ) {
      wp_enqueue_style( 'gallery-style', get_template_directory_uri() . '/css/galleria.classic.css' );
    	wp_enqueue_script( 'gallery-script', get_template_directory_uri() . '/js/galleria.classic.min.js' );
     }
    }
    add_action( 'wp_enqueue_scripts', 'add_js_css_to_gallery_page' );
    
    ?>

    В файл шаблона gallery.php добавил такую строку:
    <?php add_js_css_to_gallery_page() ?>

    Все равно не помогает… :'(

    Уважаемый, судя по всему вы очень плохо знаете ВП изнутри…
    Создавать файл functions.php не нужно было, так как этот файл является обязательным для ворпресса, и находиться по умолчанию во всех темах для ворпресс. Далее, не нужно было добавлять функцию add_js_css_to_gallery_page() в файл gallery.php

    название файла gallery.php, я написал для примера. Вам нужно знать какой файл отвечает за ту страницу на которой будет выводиться ваша галерея. Для этого ознакомьтесь с кодексом, а именно иерархия в ВП

    Функция is_page_template(), проверяет является ли данная страница шаблоном или нет. (это относиться только для шаблонов стариц), если у вас галерея (опять таки к примеру) выводиться в категориях то там нужна уже другая функция для проверки is_category(), если это одиночная запись то is_single() и так далее…

    О том что знаю хорошо я и не говорил.

    Дело в том, что я начал создавать свою тему из ничего(не редактируя другую тему) по этому и пришлось создавать function.php только сейчас.

    gallery.php — и является шаблоном страницы, на которой я хочу расположить галерею. +скорректировал пути к файлам css и js, следовательно функцию прописал правильно. Другое дело с самим файлом function.php. Полагаю в нем не хватает строк, которые бы указывали что это fucnction.php (я имею в виду что-то вроде

    /*
    Template Name: cat2
    */

    К тому же, могу предположить, что вообще дело в самом js, т.к. попробовал в статической странице указать js через <script type=»text/javascript» src=»…»></script> и в этом случае, опять же, галерея перестает работать.

    Создавать файл functions.php не нужно было, так как этот файл является обязательным для ворпресса, и находиться по умолчанию во всех темах для ворпресс.

    functions.php — совершенно не обязательный файл темы.
    Он даже так и называется — файл дополнительного функционала. Т.е. того функционала, который не прописан в др. файлах и ядре ВП.

    Ссылку на jQuery прямая, ссылка на один из файлов .js сделал прямой

    мб будет полезно: http://codex.wordpress.org/AJAX_in_Plugins
    http://dreamhelg.ru/2009/06/include-jquery-in-wordpress/

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Относительные пути. javascript» закрыта для новых ответов.