Я пытаюсь добавить каменную кладку на страницу моего магазина woocommerce в теме «Двадцать двенадцать детей». Это также главная страница моего сайта. Я довольно новичок в PHP и WordPress.
Первым шагом было создание функции для загрузки файла masonry.pkgd.min.js из http://masonry.desandro.com/
Это функция:
function twentytwelve_child_masonry() {
if (! is_admin()) {
wp_register_script('jquery_masonry', get_stylesheet_directory_uri(). 'js/masonry.pkgd.min.js' ,array(jquery), 3.2 );
wp_enque_script('jquery_masonry');
add_action('wp_footer', 'twentytwelve_child_add_masonry');
function twentytwelve_child_add_masonry() { ?>
<script>
jQuery(document).ready(function($) {
$('#content').masonry({
itemSelector: '.products',
isAnimated: true;
}); });
</script>
<?php
}}}
add_action('init', 'twentytwelve_child_masonry');
Я нашел это в учебнике на Lynda.com о создании адаптивных тем.
Когда я пытаюсь загрузить страницу, сайт падает. Кто-нибудь есть идеи? Помощь очень ценится.
Вам нужно исправить некоторые синтаксические ошибки, прекратить вложение функций, использовать wp_enqueue_script правильно, и поставьте в очередь сценарии в нужный момент. Вы не можете (или не должны) ставить их в init
действие. Вместо этого вы действительно должны упростить такие вещи, как следующее:
function twentytwelve_child_masonry() {
wp_enqueue_script( 'jquery_masonry', get_stylesheet_directory_uri() . '/js/masonry.pkgd.min.js', array('jquery'), '3.2', true );
}
add_action('wp_enqueue_scripts', 'twentytwelve_child_masonry');
Затем добавьте следующее к вашему footer.php:
<script>
jQuery(document).ready(function($) {
$('#content').masonry({
itemSelector: '.products',
isAnimated: true;
});
});
</script>
Однако, как уже упоминалось, Masonry поставляется с WordPress … так что это, вероятно, все еще усложняет ситуацию.
Других решений пока нет …