2015-06-17 3 views
1

Я нашел большой учебник здесь: codropsWordpress сетки миниатюр расширения предварительного просмотра

Demo

, но я не могу понять, как заставить его работать в Wordpress! Я начинающий/средний с Javascript, но я действительно не уверен, как подключить его к Wordpress. Wordpress Codex упоминает о том, что сценарий попадает прямо в сообщение, поскольку он не будет использоваться на всех сайтах. Кто-нибудь успешно смог заставить это работать? Можете ли вы дать мне инструкции о том, как это сделать?

ответ

0

Вот один из способов сделать это. Создав короткий код в файле functions.php, вы можете включить необходимые ресурсы js. Обратите внимание, что для этой реализации вы должны указать ресурсы локально, как определено в этой строке: element.src = '/wp-content/themes/custom_name_space/js/$src';

Или Вы можете использовать какой-то плагин, который позволяет добавлять пользовательские js к сообщению.

/** you will need to include this invocation in the source file. */ 
 
$(function() { 
 
    Grid.init(); 
 
});
<?php add_shortcode('custom_name_space_addJs', function ($atts) { 
 
/** 
 
* create a javascript shortcode 
 
* shortcode takes an id attribute and src attribute 
 
* leaving src attribute blank will generate a 404 Error Code 
 
*/ 
 

 
extract(shortcode_atts(array(
 
'id'=>'js-custom_name_space-script', 'src' => 'no-script.js',), $atts)); return " 
 
<script id='js-add-script-element'> 
 
    (function(w, doc) { 
 
    'use strict'; 
 

 
    function downloadJSAtOnload() { 
 
     var element = doc.createElement('script'); 
 
     element.id = '$id'; 
 
     element.src = '/wp-content/themes/custom_name_space/js/$src'; 
 
     doc.body.appendChild(element); 
 
     } 
 
     /* Check for browser support of event handling capability */ 
 
    if (w.addEventListener) { 
 
     w.addEventListener('load', downloadJSAtOnload, false); 
 
    } else if (w.attachEvent) { 
 
     w.attachEvent('onload', downloadJSAtOnload); 
 
    } else { 
 
     w.onload = downloadJSAtOnload; 
 
    } 
 
    }(window, document)); 
 
</script>"; }); ?> 
 

 

 

 
<!-- Then inside a wordpress post, write the needed HTML from the tutorial and use the short code --> 
 

 
[custom_name_space_addJs id="thumb-grid" src="grid.js"]

+1

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

  • Описан ли код вызова, который вы указали для размещения в файле grid.js, также в файле modernizr.custom.js? $(function() { custom.modernizr.init(); });
  • Идентификаторы id и src немного смутили меня. Неважно, какое имя я выбрал для идентификатора? и для src я представляю его так же, как element.src?
Jarrel09

+0

Убедитесь, что открывающие и закрывающие теги php находятся в соответствующих местах для вашего файла. Нет, этот код нужно разместить только в конце grid.js. Атрибут id произволен, но он должен быть уникальным и полезным для отладки, поэтому вы можете легко найти тег скрипта. А атрибут src - это только имя файла, так как я уже указываю на путь в вашей теме, тогда имя файла становится конкатенированным. – colecmc

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