Script в head php

Как включить файл JS в PHP?

Извините, но этот ответ не совсем верный. Если вы хотите уменьшить HTTP-запросы, PHP на самом деле ответ. Таким образом, скрипт генерирует весь контент для браузера, а не для извлечения его у вас или другого веб-хостинга. Например, включение библиотеки jquery вместо реального хранилища jquery.

@Cl0ttERS Cl0ttERS этот конкретный вопрос все еще не является проблемой PHP, хотя. Все, что видит браузер, это сгенерированный HTML; PHP только играет роль в его создании. Это правда, что вы можете использовать PHP, чтобы поместить все ваши вещи в один скрипт, хотя (хотя это приносит новые проблемы . )

В вашем примере вы используете атрибут href , чтобы указать, где можно найти файл JavaScript. Это должен быть атрибут src :

Для получения дополнительной информации см. w3schools.

«Кроме того, JavaScripts должен быть добавлен в заголовок раздела документа». Нет, они должны быть там, где, по мнению автора, они должны быть. Нет никакой причины, по которой вы не можете поместить теги script в свой раздел body , и на самом деле для этого могут быть веские причины. Например: developer.yahoo.com/performance/rules.html

Ой? У меня сложилось впечатление, что это разрешено только в головной секции. Спасибо за хорошую статью по оптимизации, я сразу прочитал! 🙂

Не волнуйтесь. 🙂 Тег script можно использовать везде, где ожидается «содержание метаданных» или «содержание фраз»; ссылка (взорванная SO, не подчеркивающая ссылки) , которая находится почти где угодно в head или body . Большинство рекламных сетей используют теги script вложенные в разметку сайта.

Читайте также:  Задача замена подстроки python решение

@ThusithaSumanadasa Вы редактировали неправильно. Тег

У Pekka есть правильный ответ (отсюда мой ответ на этот вопрос — Community Wiki): Используйте src , а не href , чтобы указать файл.

первый тег в функции document.write закрывается
Каков правильный способ сделать это?

Вы не хотите или нуждаетесь document.write для этого, но на всякий случай do нужно поместить символы внутри тега script по какой-то другой причине: вы сделайте это, убедившись, что анализатор HTML (который не понимает JavaScript) не видит литерала . Есть несколько способов сделать это. Один из способов — выйти из / , даже если вам не нужно:

  

Или, если вы чувствуете себя более параноидально:

  

. так как в каждом случае JavaScript видит строку как , но парсер HTML не делает.

Я никогда не был поклонником закрытия блоков PHP для вывода контента в браузер, я предпочитаю, чтобы мой вывод был захвачен, поэтому, если в какой-то момент в моей логике я решил, что хочу изменить свой вывод (после того, как результат уже был отправлено) Я могу просто удалить текущий буфер.

Но, как сказал Пекка, основная причина, по которой у вас возникают проблемы с включением javascript, заключается в том, что вы используете href для указания местоположения файла js, где вы должны использовать src .

Если у вас есть файл функций с вашими функциями внутри, добавьте что-то вроде:

function js_link($src) < if(file_exists("my/html/root/" . $src)) < //we know it will exists within the HTTP Context return sprintf("",$src); > return ""; > 

В вашем коде n без необходимости закрытия блоков с помощью ?> вы можете просто использовать:

echo js_link("jquery/1.6/main.js"); 

Источник

Как оставить некоторые js-скрипты в head?

Использую перенос всех js-скриптов в подвал (Переместить весь Javascript в конец страницы).
Но счетчики Метрики, Google Analitics, Facebook должны быть в .

Пробовал просто использовать в header.php, но все равно уносится все в подвал. Как быть? Как выборочно оставить скрипты в ?

Suntechnic

Уберите эту галку — это плохая идея. Она сводится к обработке на каждом хите страницы регулярками.

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

Пробовал просто использовать в header.php, но все равно уносится все в подвал. Как быть? Как выборочно оставить скрипты в ?

Как написал — снять все галки, а скрипты размещать вручную.
Для вывода добавленных через ядро вы можете использовать $APPLICATION->ShowHeadScripts();
Разместив это в подвале и или в шапке, а в альтернативной части страницы просто

PbI6A_KuT

Asset::getInstance()->addJs("/local/templates/main/js/js.js");

Иначе кэшироваться как я понимаю они не будут. По умолчанию такое подключение размещает скрипты в . В итоге мне приходится ставить галку в Главном модуле -> Переместить весь Javascript в конец страницы.

«Не должны, а хотят. Для них это хорошо, для вас это плохо. В том числе и потому что считать они будут даже не догруженные до конца страницы.»

Suntechnic

Asset::getInstance()->addJs(«/local/templates/main/js/js.js»); — это просто новый способ, который появился в D7.
Выводятся они все так же в $APPLICATION->ShowHeadScripts();

У вас наверняка есть $APPLICATION->ShowHead(); в шапке. Так вот это всего лишь аналог:

$APPLICATION->ShowMeta('robots', false); $APPLICATION->ShowMeta('keywords', false); $APPLICATION->ShowMeta('description', false); $APPLICATION->ShowLink('canonical', null); $APPLICATION->ShowCSS(true); $APPLICATION->ShowHeadStrings(); $APPLICATION->ShowHeadScripts();

approximate_solution

Чем переносите? Скриптом или плагином? Должно быть исключение, либо выборка. Как правило плохая практика переносить всё в футер, если контента много — и вы используете скрипты в header, есть шанс что при плохом соединении у вас просто скрипты не погрузятся. Почитайте про ассинхронное подключение скриптов js. И не выводите google speed test в карго культ.

Источник

PHP – вставить скрипт в

Бегите в немного липкую ситуацию, которую я, кажется, не могу обмануть. В основном то, что я пытаюсь достичь, – это возможность добавлять различные файлы Javascript на разные страницы.

  • Страница 1: импорт jquery.js
  • Страница 2: import mootools.js

Итак, что я сделал, я создал функцию addScript() следующим образом:

function addScript($file) < $script = ''; $script .= ''; return $script; > 

поэтому, если я вызываю addScript(‘jquery.min’); он, выводит правильно.

Теперь я хочу заменить закрывающий на выход из указанной выше функции. Если я сделаю следующее, то он отлично работает:

ob_start(); require_once("models/header.php"); $contents = ob_get_contents(); ob_end_clean(); echo str_replace('', addScript('jquery.js') . '', $contents); 

Однако я бы хотел, чтобы это было немного более динамичным, так как может быть несколько сценариев, которые мне нужно вводить на каждую страницу следующим образом:

addScript('script.js'); addScript('script2.js'); addScript('script3.js'); 

Затем я подумал о создании функции getHead() с циклом foreach внутри и возвратом str_replace там, но это не сработало.

Может ли кто-нибудь направлять меня в направлении динамического ввода как можно большего количества сценариев и вывода последнего бит головы?

Почему бы не сделать что-то вроде этого:

class Assets < private static $css = array(); private static $js = array(); static function add_style($path) < self::$css[] = $path; >static function add_script($path) < self::$js[] = $path; >static function get_styles() < $output = ''; foreach(self::$css as $path) < $ouput .= '' . "\n"; > return $ouput; > static function get_scripts() < $output = ''; foreach(self::$js as $path) < $ouput .= '' . "\n"; > return $ouput; > > 

Тогда в любом месте вашего проекта:

Assets::add_style('path/to/style.css'); Assets::add_script('path/to/jquery.js'); 

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

Отказ от ответственности: есть много споров об использовании статических vars, поскольку они выглядят как глобальные. Я согласен, но это быстро и грязно и работает независимо от того, какую структуру вы используете. Вы также можете сделать переменные oldschool экземплярами, но тогда вам также придется передать объект активов в header.php.

Что случилось со следующим?

echo str_replace('', addScript('jquery.js'). addScript('jquer1.js'). addScript('jquer2.js'). addScript('jquer3.js'). '', $contents); 

Как насчет того, чтобы вы поместили ob_start(); в header.php . Тогда ваша функция:

function addScript($file) < $script = ''; echo str_replace('', addScript('jquery.js') . '', ob_get_clean()); > 

Этот метод сохраняет выходной буфер, и вы можете манипулировать им позже в скрипте всякий раз, когда захотите. как и с addScript() .

Источник

Вставить код в раздел head на WordPress – темы, плагины и php функции

Большинство скриптов и систем аналитики требуют чтобы подключение к серверам происходило в шапке сайта, где располагается вся служебная информация. Чтобы добавить код в head WordPress не нужно придумывать сложных схем, стоит применить некоторые методы, описанные в статье.

Не путайте head и header, второй это тег семантической разметки сайта, который отображается и показывает, что здесь находится шапка сайта.

Если шаблон не обновляется

Самый простой методом – добавить код напрямую в файлы шаблона. Но есть несколько ограничений:

  • Продукт не должен обновляться, например у вас собственная разработка, сделанная на заказ.
  • Возможны споры, отслеживать через дебаг режим будет невозможно.

Открываете файл header.php (находится в корне темы), обычно он отвечает за показ первого экрана в WordPress. Используйте соединение по FTP, чтобы при ошибках откатить изменения. Я покажу на примере стандартного редактора в админке WP.

Правим WordPress.

Перешел в редактор тем, нашел файл, потом вставил тестовый тег и обновил. Так он выглядит на главной странице.

Смогли добавить мета тег в head.

Если обновляется, то данный метод сразу не подходит, переходим к другим способам.

Темы с возможностью добавлять код html в head

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

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

Если не нашли таких настроек, то переходим к другим методам, чтобы добавить код в раздел в хеад.

Применяем плагин ClearfyPRO

Любимый ClearfyPRO умеет все, также прописывать html и другие виды спецификации в head блога.

Настройка вставки кодов в clearfy

Есть переключатель можно на время отключить отображение, чтобы не приходилось стирать и заново загружать код. Аналогично можно удалить стили recentcomments. Полезно узнать что ClearfyPRO оптимизирует, ускоряет и улучшает seo в WordPress дополнительно по 49 требованиям. Для читателей WPCourses делаем скидку на покупку.

Точечным решением для вордпресс является Head & Footer Code , устанавливается стандартно – поиском из админки или загрузкой архива.

Следующий плагин для вставки HTML в шапку.

  1. Поле активации в одноименный пункт в Инструментах.
  2. Находим область HEAD Code.
  3. Помещаем требуемый код.
  4. Выставляем приоритет – не всегда срабатывает, но он определяет выше или ниже будет располагаться конфигурация, прописанная выше, между открывающим и закрывающим тегами.
  5. Внизу нажимаем обновить.

Применяем PHP инструкцию

Все темы содержать в себе инструкцию wp_head , именно она выводит все что встроено в WordPress в «шапке» блога. Мы можем присоединиться к ней с помощью хука и вывести собственный код.

function wpcourses_insert_header() < ?>  add_action( 'wp_head', 'wpcourses_insert_header' );

Помещаем его в файл function php. Видим место куда добавлять, вводите любой HTML и js script, после сохранения изменений, ваша функция выведется после отработки основных сценариев wp_head. Также отключается xml rpc протокол в WordPress.

Применяя четыре простых способа смогли добавить любой код в head любимой CMS WordPress, советую использовать плагины, если нет подходящих мест в шаблоне.

Источник

Оцените статью