2013-05-21 6 views
0

저는 AJAX 테마의 각 게시물 아래에 공유 버튼을 포함시키기 위해 AddThis Wordpress 플러그인을 사용하고 있으며 코드를 올바르게 가져 오는 데 어려움이 있습니다.AddThis Wordpress 플러그인이 AJAX 테마로 작동하지 않습니다.

<script> 
    var tbx = document.getElementById("toolbox"), 
    svcs = {email: 'Email', print: 'Print', facebook: 'Facebook', expanded: 'More'}; 

    for (var s in svcs) { 
     tbx.innerHTML += '<a class="addthis_button_'+s+'">'+svcs[s]+'</a>'; 
    }); 

    function ReinitializeAddThis() { 
     if (window.addthis) { 
      window.addthis.toolbox("#toolbox"); 
     } 
    } 
</script> 
<iframe style="display: none;" onload="ReinitializeAddThis();"></iframe> 

버튼 :이 가지고있는 메인 페이지의 PHP 파일의 포스트 루프에서 다음

<div class="addthis_toolbox addthis_default_style" id="toolbox"> 
    <a class="addthis_button_preferred_1"></a> 
    <a class="addthis_button_preferred_2"></a> 
    <a class="addthis_button_preferred_3"></a> 
    <a class="addthis_button_preferred_4"></a> 
    <a class="addthis_button_compact"></a> 
</div> 

:

나는 설정 페이지에서 사용자 정의 버튼 필드에 다음 코드를 삽입 산발적으로 만로드되며 새로 고침 후에 사라집니다. 나는 또한 오류가 발생했습니다 잡히지 않은 ReferenceError : ReinitializeAddThis가 정의되어 있지 않습니다.은 혼란 스럽습니다 ... 나는 어떤 통찰력에 정말로 감사 드리며 불분명 한 점이 있으면 사과드립니다. 감사!

+0

''이게 뭐야? – montrealist

+0

@dalbaeb 그것은 AJAX로드 후에 AddThis를 활성화 할 때이 스레드 (http://bit.ly/18kLKoQ)에서 가져온 코드의 일부입니다. 나의 이해는'ReinitializeAddThis();'함수를 실행해야한다는 것이다. (편집 된 링크, 가격 인하에 문제가 있음) – bedlogic

+0

AJAX를 통해 버튼을로드 중입니까? 그렇지 않다면 페이지에 포함시키는 더 깨끗한 방법을 연구하면 문제가 사라질 것입니다. – montrealist

답변

0

저는 해결책을 찾았습니다. 그래서 누군가가 같은 문제에 부딪 힐 경우 여기에 게시 할 것입니다. AddThis 설정 페이지에서

, 나는 "사용자 정의 버튼"필드에이 코드를 붙여 :

<script type="text/javascript"> 
     $(document).ajaxComplete(function(){ 
      console.log("All AJAX requests completed"); 

      if (window.addthis) { 
       window.addthis.toolbox(".addthis_toolbox addthis_default_style"); 
       console.log("AddThis rendered") 

      }; 
     }); 
     var tbx = document.getElementById("toolbox"), 
      svcs = {email: 'Email', print: 'Print', facebook: 'Facebook', expanded: 'More'}; 

     for (var s in svcs) { 
      tbx.innerHTML += '<a class="addthis_button_'+s+'">'+svcs[s]+'</a>'; 
     }; 
    </script> 

이 전화 : 다음

<div class="addthis_toolbox addthis_default_style" id="toolbox"> 
    <a class="addthis_button_preferred_1"></a> 
    <a class="addthis_button_preferred_2"></a> 
    <a class="addthis_button_preferred_3"></a> 
    <a class="addthis_button_preferred_4"></a> 
    <a class="addthis_button_compact"></a> 
</div> 

메인 페이지의 PHP 파일 내 포스트 루프 window.addthis.toolbox()은 각 게시물에 대해 기능을 수행하고 AJAX가 지정된 on this page으로 렌더링 된 후에 공유 도구 상자를 만듭니다.