Сценарий не будет печатать на голове, если правильный путь к файлу

Я имею дело с довольно хакерской реализацией, где header.php имеет следующую строку: include_once "tracking.php"; , Внутри tracking.php есть следующие строки:

 <script type="text/javascript" src="/wp-content/themes/themename/js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="/wp-content/themes/themename/js/jquery.cookie.js"></script> 

Однако, если пути к файлам .js верны, они не печатаются в голове страницы. Если я ввожу опечатку, чтобы путь был неправильным, тогда они печатаются!

Я понимаю, что это не оптимальный способ включения этих файлов. Однако есть ли у кого-нибудь представление о том, почему они не печатаются, если правильный путь?

Как насчет использования locate_template() для включения и wp_enqueue_script() для скриптов? Также существует content_url() для target / wp-content /.

Также: Как вы его осмотрели? Исходный код? FireBug? Попробуйте открыть исходный код в FF, а затем нажмите ссылку. Если вы получаете «файл не найден», вы знаете, что это значит, иначе он должен быть загружен. Тот факт, что он действительно не «печатается» на экране, – это то, что я никогда раньше не видел (на самом деле). Лучшим решением будет первый абзац моего метода включения: Switch и перестать беспокоиться 🙂

пытаться

 get_template_part('tracking'); 

как способ включить этот файл, а не прямой.

Как насчет изменения пути для get_template_directory_uri() следующим образом:

 <script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery-1.3.2.min.js"></script> 

Вы также можете использовать TEMPLATEPATH чтобы получить путь, а не uri. Но так или иначе, почему бы вам просто не включить эти строки прямо в заголовок?

ОБНОВИТЬ

Если вам нравится использовать wp_enqueue_script вам нужно запомнить его действие, поэтому ваш файл tracking.php будет выглядеть так:

 function register_scripts() { wp_enqueue_script('jquery'); wp_register_script('jquerycookie', get_template_directory_uri() . '/js/jquery-1.3.2.min.js', array('jquery')); wp_enqueue_script('jquerycookie'); } add_action('wp_enqueue_scripts', 'register_scripts'); 

Это зарегистрирует новый скрипт ( /js/jquery.cookie.js ) и распечатает его с помощью других скриптов. Я не уверен, что действительно необходимо включить jQuery, поскольку он должен быть уже включен, просто чтобы убедиться, что вы можете добавить это в начале функции:

 wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js'); 

Как я уже сказал, это необязательно, поскольку jQuery должен быть включен по умолчанию, но кто знает.

wp_enqueue_script() может обрабатывать возможность мгновенного включения javascript, а также проверки на наличие зависимостей.

Простая php-функция: <?php wp_enqueue_script('jQuery') ?> В вашем файле tracker.php (или header.php ) мгновенно загрузит jquery.

Затем вы используете другой скрипт <?php wp_enqueue_script('jquery_cookie', TEMPLATEPATH. 'js/jquery.cookie.js', 'jquery')

И, наконец, вместе:

  <?php function mysite_init() { if (!is_admin()) { // only fire this on non-admin pages wp_enqueue_script('jquery'); wp_enqueue_script('jquery_cookie', TEMPLATEPATH. 'js/jquery.cookie.js', 'jquery'); } } // Add your hook to fix issue #11526 http://core.trac.wordpress.org/ticket/11526 add_action ('init', 'mysite_init'); ?>