2014-12-04 4 views
0

twentytwelve 하위 테마의 woocommerce shop 페이지에 석조물을 추가하려고합니다. 이것은 또한 내 사이트의 첫 페이지이기도합니다. 나는 PHP와 Wordpress에 상당히 익숙하다.WooCommerce에 Masonry를 추가 한 후 사이트가 깨졌습니다.

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'); 

난 린다에서 튜토리얼을 발견

첫 단계

http://masonry.desandro.com/

이쪽으로부터 masonry.pkgd.min.js 파일을로드하는 기능을 만들 수 있었던 기능이다. co.kr에서 응답 성있는 테마를 작성하십시오. 페이지를로드하려고하면 사이트가 다운됩니다. 누구든지 어떤 생각? 도움을 많이 주시면 감사하겠습니다.

+1

웹 사이트는 "충돌"하지 않습니다. 실제로 무엇이 잘못 되었습니까? –

+0

'init' 액션에서 스크립트를 큐에 넣으면 안됩니다. 실제로 디버그를 켜면 오류가 표시됩니다. – rnevius

+0

의견을 보내 주셔서 감사합니다. 페이지를로드하면 흰색 화면이 나타납니다. Wordpress의 관리 영역에서도. 그러나 함수는 if (! is_admin())로 시작합니다 ... – A3O

답변

0

일부 구문 오류를 수정하고 중첩 기능을 중지하고 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> 

그러나, 언급 한 바와 같이, 벽돌 배송 워드 프레스와 ... 그래서 이것은 아마도 여전히 복잡한 것들입니다.

+0

OP는 자식 테마를 사용하며,'get_stylesheet_directory_uri() '여야합니다. – diggy

+0

사실, 자식 테마 때문에 get_stylesheet_directory_uri()를 이해해야합니다. @ 메 비우스 : 제임스 코스터가 그의 블로그에 쓴 글은 무엇을 의미합니까? 이 코드는? add_action ('wp_enqueue_scripts', 'jk_masonry'); 함수 jk_masonry() { wp_enqueue_script ('jquery-masonry', array ('jquery')); } 나는 정말로 혼란 스럽다. – A3O

+0

@diggy가 수정되었습니다. 완전히 그 부분을 놓쳤습니다 ... 심지어 함수가 "자식"이라고 말하는 경우에도. 와! – rnevius

관련 문제