2014-07-18 7 views
0

나는 MetaSlider Pro 및 다음 GEN 갤러리를 함께 설치하여 WordPress에 사용했습니다. 그러나 갈등이 있으며 Next GEN Gallery는 전혀로드되지 않습니다. 단지 blury 아이콘이 표시됩니다. Meta Slider Pro Next GEN 갤러리 작동을 중지 할 때. 어느 누구도이 충돌을 디버깅 할 수있는 방법을 알고 있습니다.Wordpress Meta Slider Pro 및 NextGEN 갤러리

EDIT : 게시자가 다음 게시 갤러리에서 게시 슬라이드 (MetaSlider Pro의 경우)를 사용할 때만 충돌이 발생하며 다른 모든 슬라이더는 다음 GEN 갤러리와 잘 작동하는 것으로 나타났습니다. 그래서 그 포스트 슬라이더와 다음 GEN 사이에 상충되는 것이 틀림 없습니다. 모든 GEN 쇼는 다음과 같습니다.

<img class="ngg_displayed_gallery mceItem" width="640" height="363" alt="" src="http://infinite.somewhere.net/index.php/nextgen-attach_to_post/preview/id--380"> 

편집 2 : 나는 NextGEN 갤러리에서 파일 module.attach_to_post.php이 기능이 때 내용 발사했는데 substitute_placeholder_imgs라고 남겼 21/07/2014

몇 가지 조사를 수행 한 후 처리되었지만 Meta Slider Pro의 게시물 내용에 의해 무시 된 것으로 보입니다. 즉, 다음 줄

add_filter('the_content', array(&$this, 'substitute_placeholder_imgs'), PHP_INT_MAX, 1); 

실제로 메인 콘텐츠에서 실행되는 것은 아니지만 메타 슬라이더 콘텐츠 게시물을 실행하고 바꿉니다. 다음은 페이지 내용입니다 :

<div class="content-pad"> 
<div class="hideifmobile">[metaslider id=105]</div> 
<div class="hideifweb">[metaslider id=276]</div> 
</div> 
<img class="ngg_displayed_gallery mceItem" src="http://infinite.cybernamixqld.net/index.php/nextgen-attach_to_post/preview/id--380" alt="" width="640" height="363" /> 

교체 후 다음이 발생합니다.

<div class="content-pad"> 
<div class="hideifmobile">SUCCESSFULLY REPLACED WITH SLIDER</div> 
<div class="hideifweb">SUCCESSFULLY REPLACED WITH SLIDER</div> 
</div> 
<img class="ngg_displayed_gallery mceItem" src="http://infinite.cybernamixqld.net/index.php/nextgen-attach_to_post/preview/id--380" alt="" width="640" height="363" /> 

다음 GEN 갤러리 이미지는 갤러리로 대체되지 않습니다.

정규식이 제대로 작동하지 않는 것으로 나타 났으며 같은 페이지에서 여러 갤러리를 처리하도록 변경해야했습니다. 이 변경 사항은 오류 일 수 있습니다. (모든 부분에서) 모든 일이 잘 작동한다면 그렇게하지 마십시오.

//old preg_match_all("#<img.*http(s)?://({$preview_url}|{$alt_preview_url})/id--(\\d+).*\\/>#mi", $content, $matches, PREG_SET_ORDER) 

     if (preg_match_all("#<img[^>]*http(s)?://({$preview_url}|{$alt_preview_url})/id--(\\d+)[^>]*>#mi", $content, $matches, PREG_SET_ORDER)) { 

아직이 문제를 해결하지 못했습니다. 메인 페이지의 내용이 'the_content'호출에 의해 구문 분석되지 않는 이유를 찾고 있지만 슬라이더의 모든 게시물은 파싱되고 있습니다. 어떤 아이디어?

+0

'다음 GEN 갤러리가 실패합니다.'는 마술사를 기다리지 않는 한 아무 것도 될 수 없습니다. 제대로 설명하지 않으면 문제를 짐작할 수 없습니다. – hutchbat

답변

0

안녕하세요. 일시적으로이 문제를 해결할 수있는 방법을 찾았습니다. 그것은 최선의 방법은 아니지만 효과가 있습니다.

다음과 같은 방법으로 테마 페이지/후 템플릿을 변경합니다 :
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

<?php ob_start(); the_content(); $data = ob_get_clean(); echo fixsliderbug($data); ?> 
<?php endwhile; endif; ?> 

그런 다음 테마에 다음 함수를 추가합니다. 이것은 무엇을

function fixsliderbug($data){ 
    if (preg_match_all("#<img[^>]*http(s)?://([^>]*)/id--(\\d+)[^>]*>#mi", $data, $matches, PREG_SET_ORDER)) { 

     foreach ($matches as $match) { 
       $out = apply_filters('the_content',$match[0]); 
       $data = str_replace($match[0], $out, $data); 
     } 

    } 


    return $data; 
} 

콘텐츠의 분석에서 누락 된 모든 차세대 슬라이더를 발견하고 런타임에 그들을 구문 분석하는 것입니다. 나는 거기에 더 나은 해결책이 있다고 확신하지만 귀하의 사이트가 위와 같은 것을 시도하는 빠르고 더러운 방법이 필요하다면.