我已经将MetaSlider Pro和Next GEN Gallery一起安装用于wordpress。但是存在冲突,Next GEN Gallery根本无法加载,只有blury图标显示。当我关闭Meta Slider pro Next GEN Gallery工作时。任何人都知道如何调试这个冲突。
编辑:我发现冲突只发生在使用下一代图库的Post Feed幻灯片(在MetaSlider Pro中)时,所有其他滑块似乎与Next 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:21/07/2014
在做了一些调查之后,我发现NextGEN图库中的文件module.attach_to_post.php有一个名为substitute_placeholder_imgs的函数,它应该在处理内容时触发,但它似乎被Meta Slider Pro的帖子内容覆盖了。即以下行
add_filter('the_content', array(&$this, 'substitute_placeholder_imgs'), PHP_INT_MAX, 1);
实际上并没有触发主要内容,但确实触发并替换了Meta Slider内容帖子。以下是页面内容:
<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" />
下一代图库图像不会被图库替换。
我还发现正则表达式似乎没有正常工作,并且必须更改它以处理同一页面上的多个库。这种变化可能是一个错误(就我而言)所以如果每件事情都适合你,就不要这样做。
//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 :(得分: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;
}
这样做的目的是找到在解析内容时遗漏的任何Next GEN滑块,并在运行时解析它们。我相信有更好的解决方案,但如果您需要一种快速而肮脏的方式来运行您的网站,请尝试上述方法。