2016-03-18 3 views
0

Я помогаю некоторым из моих клиентов отслеживать использование своего сайта, заставляя их вставлять немного кода JavaScript на свою страницу верхнего или нижнего колонтитула. Недавно я попросил клиента сказать, что он использует Wordpress и «они не разрешают сценариев». Я ничего не знаю о Wordpress, поскольку я никогда не использовал его. Ниже приведен код, который я хотел бы, чтобы его установить (модифицированный бит для краткости и безопасности):Как вставить код JavaScript на сайт Wordpress?

<div> 
    <script> 
     var wandTopSitesUserId = 28; 
     document.cookie = 'SiteMetrics=' + wandTopSitesUserId + '; expires=Tue, 1 Jan 2030 00:00:00 UTC; path=/'; 

     document.write('<div><a href="http://www.xyxyxyx.com/"><img src="http://www.xyxyxyx.com/Log/LogVisit/?siteId=28&userId=' + wandTopSitesUserId + '&pageName=' + location.pathname + '&userAgent=' + navigator.userAgent + '" alt="Site Metrics" /></a></div>'); 
    </script> 
</div> 

Фактический код выше, не так важно. Мне просто нужно знать, есть ли какие-нибудь специальные пользователи Wordpress для установки этого кода?

Кроме того, пользователь с помощью WordPress.com и не wordpress.org

+0

wordpress.com просто не разрешает Javascript: ru.support.wordpress.com/code/#javascript – markratledge

ответ

0

Для такого маленького сценария я бы не рекомендовал тематические крючки.

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

Для этого я бы разместил его непосредственно в файле footer.php внутри активной темы (wp_content/themes/<theme_name>). Поместите код чуть выше тега </body>, чтобы гарантировать, что на загрузку основного сайта нет задержки (не то, что отправленный вами сценарий задержит загрузку страницы, насколько я могу судить).

+0

Я только что узнал, что пользователь использует Wordpress.com, а не Wordpress.org. Это имеет значение? –

+0

Да, они не могут редактировать темы и не могут устанавливать плагины. Я не думаю, что вы сможете получить этот код на сайте wordpress.com. – toomanyredirects

+0

Вы должны создать дочернюю тему перед тем, как изменить темы: http://codex.wordpress.org/Child_Themes – markratledge

2

Использование крюков вы можете вставить свои скрипты в свой верхний или нижний колонтитул. Это довольно легко. Не думайте об этом сложным образом.

Для сценария, чтобы быть в заголовке, просто используйте следующий крючок

add_action('wp_head', 'some_function_name'); 

Имя функции является функция, которая определена в вашем functions.php, например.

function.php файл

function some_function_name() { 
?> 
<script>//Your Normal JS Code</script> 
<?php 
} 

И точно так же, чтобы добавить свой скрипт в сноске вы просто должны сделать следующее.

add_action('wp_footer', 'some_function_name'); 

Если ваша функция определена в файле functions.php

См Codex для получения дополнительной информации: https://codex.wordpress.org/Plugin_API/Action_Reference/wp_head https://codex.wordpress.org/Function_Reference/wp_footer

Для получения дополнительной информации о Крючки: http://wpcandy.com/teaches/how-to-use-wordpress-hooks/

0

I» m довольно юниор, как разработчик Wordpress, но, насколько мне известно и опыт, насколько вы поместили этот код внутри header.php Файл текущей темы в краткосрочной перспективе не должен быть проблемой.

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

0

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

В соответствии с другими полученными ответами: вам не нужно вставлять скрипт в functions.php, так как это излишне. И вам не нужно (и не следует) изменять тему, добавляя скрипт к header.php или footer.php; если вы делаете это или добавляете в functions.php, вам нужно создать дочернюю тему - см. Child Themes « WordPress Codex - чтобы не перезаписывать эти изменения (и удалять скрипт и любой код, добавленный в тему), когда тема обновляется.

Попробуйте https://wordpress.org/plugins/header-and-footer-scripts/, чтобы легко добавлять скрипты в верхний и нижний колонтитулы. Возможно, вам придется хранить теги <script> вокруг Javascript; прочитайте документы для плагина. Простой плагин, подобный этому, не замедлит работу сайта.

Тэги <div> не имеют смысла, если вы не хотите стилизовать дисплей, что означает, что вам нужно дать им класс, то есть <div class="myclass"> и добавить этот стиль в свой стиль. Css в теме. Еще раз, если вы добавляете что-либо в файлы тем, создайте дочернюю тему.

+0

Я только что узнал, что пользователь использует Wordpress.com, а не Wordpress.org. Это имеет значение? –

+0

Большая разница; они просто не разрешают Javascript: https://en.support.wordpress.com/code/#javascript – markratledge

Смежные вопросы