自动添加一个FancyBox到POST类型“POST”图像

时间:2012-04-29 作者:turbonerd

当前,onmy homepage (这是帖子列表),如果单击某个图像,它将在与全尺寸图像相同的窗口中打开。

我想更改它,以便当用户单击所述图像时,它会打开Fancybox弹出窗口。

我有我的Fancybox代码,它适用于我的自定义帖子类型页面(因为我能够为这些图片设置类/rel):

// fancybox
jQuery( document ).ready( function( $ ) {
    $("a img.fancybox").fancybox({
        \'transitionIn\'  :   \'elastic\',
        \'transitionOut\' :   \'elastic\',
        \'speedIn\'       :   600, 
        \'speedOut\'      :   200, 
        \'overlayShow\'   :   true,
        \'overlayOpacity\':   0.7,
        \'overlayColor\'  :   \'#333\',
        \'titlePosition\' :   \'over\'
    });
});
但我不知道如何将Fancybox添加到WordPress在帖子中自动为其链接图像提供的代码中:

<div id="attachment_542" class="wp-caption alignleft" style="width: 135px">
    <a href="http://www.xxx.com/wp-content/uploads/2011/12/Amazonas-English-1.jpg">
        <img class="size-thumbnail wp-image-542 fancybox" title="Amazonas English" src="http://www.xxx.com/wp-content/uploads/2011/12/Amazonas-English-1-288x381.jpg" alt="Amazonas English" width="125" height="165">
    </a>
    <p class="wp-caption-text">Amazonas Magazine - now in English!</p>
</div>
有什么建议吗?有没有办法只使用Fancybox上的jQuery选择器就可以做到这一点,或者我必须实现一个WP过滤器来修改插入后的图像链接,以便它们包含特定的id/类?

提前感谢,

1 个回复
最合适的回答,由SO网友:Bainternet 整理而成

以下是我在网站中使用的代码,它将锚定标记下的所有图像加载到fancybox

add_action(\'wp_footer\',\'auto_fancy_box\');
function auto_fancy_box(){
    if (!is_single() && !is_page())
        return;
    ?>
    <SCRIPT TYPE="text/javascript">
    jQuery(document).ready(function(){
        jQuery(".post_content").find("a:has(img)").addClass(\'group\');
        jQuery(".post_content").find("a:has(img)").attr(\'rel\',\'group1\');
        jQuery("a.group").fancybox({\'transitionIn\':\'elastic\',\'transitionOut\':\'elastic\',\'speedIn\':600,\'speedOut\':200,\'overlayShow\':false});
    });
    </SCRIPT>
<?php 
}
只需更改.post_content 发布内容容器jQuery选择器。

结束

相关推荐

处理jQuery组件冲突

在插件开发中,防止jQuery组件在前端发生冲突的最佳实践是什么?例如,假设我在一个插件中包含jQuery Apprise对话框,该插件将此对话框加载到前端,另一个插件可能也会这样做。因为这会被加载和声明两次,或者其中一个是分叉和自定义的,而我的不是,所以我们在前端会出现Javascript错误(我假设)。(注意,为了在前端加载jQuery组件,我正在通过wp\\u head()操作事件使用wp\\u register\\u script()和wp\\u enqueue\\u script()策略的最佳实