В настоящее время мне нужно добавить некоторые пользовательские jQuery в мои функции wordpress, я добавил jQuery следующим образом:
add_action("wp_enqueue_scripts", "my_jquery_enqueue", 11); function my_jquery_enqueue() { wp_deregister_script('jquery'); wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js", false, null); wp_enqueue_script('jquery'); }
Мне нужно добавить следующее:
$(document).ready(function () { $(".infobfn").append('<a href="#" rel="tooltip" title="<?php echo $variable; ?>"><i class="icon-info-sign"></i></a>');});
Проблема в том, что я не могу добавить это во внешний .js-файл, поскольку он содержит переменные php.
Когда он остался в моих функциях, я получаю следующее:
Warning: Cannot modify header information - headers already sent by
Я добавил ob_start (); который был рекомендован. Я, хотя это сработало, но потом понял, что загружена только половина моей страницы.
В настоящее время я не использую php-заголовок внутри моего functions.php и также проверял пробел.
Любые идеи, как я могу обойти это?
Две вещи, которые вы делаете неправильно:
Dequeuing WP в комплекте jQuery
Не удалять jQuery WordPress
Почему загрузка собственного jQuery является безответственным
Использование jQuery без режима noConflict
. Следующий пример – правильный способ сделать это:
jQuery(document).ready(function($) { // Now, $ will refer to jQuery // Write all your logic inside this block });
И, чтобы решить использование переменных PHP внутри вашего файла Javascript, используйте wp_localize_script
. Эта функция передаст любые переменные, которые вы хотите разместить в файле Javascript, помещенном в очередь.
Проверьте этот ответ для рабочего примера.