網生@誌 | zEUS.’Blog

Not Only Wordpress Template, But Also My Life…
首页 » Wordpress研究 » 无插件让 Wordpress 原生相册支持 lightbox

无插件让 Wordpress 原生相册支持 lightbox

字体大小:T | T
wordpress-research category

不提倡使用过多的 插件,因为很多插件都会在 head 标签内增加大量的 JS,无疑这会影响到页面载入的速度,因而我就想能整合到主题里的效果尽量整合进来“统一管理”,这样自己也好让 JS 出现在它们需要的地方,避免不必要的加载。这里简单介绍一下给主题加入 的 lightbox 特效后如何让它能够支持 原生的图片相册功能。

我在上一篇日志里第一次使用了 原生相册功能,给我感觉挺不错的——方便快捷,但是它的图片链接会重新打开图片,这着实不是很爽。另外,由于 D&Z Theme Pro CP 主题已经内嵌了 的 lightbox 特效,于是我就想能否将两者结合起来,不试不知道,一试还真成功了 :-D 而且还只是仅仅只是在 header.php 中加入了一句代码:

$('.gallery a').lightBox();

D&Z Theme Pro CP 的用户只需在 header.php 文件中搜索一下“lightbox”这个关键词,然后将上面那句代码添加成如下形式即可:

$(function() {
    $('a[@rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
    $('.gallery a').lightBox();
});

这里简单解释一下:
lightbox 的官方介绍(http://leandrovieira.com/projects/jquery/lightbox/)中可以得知调用 lightbox 特效的方法有如下几种:

$(function() {
	// Use this example, or...
	$('a[@rel*=lightbox]').lightBox(); // Select all links that contains lightbox in the attribute rel
	// This, or...
	$('#gallery a').lightBox(); // Select all links in object with gallery ID
	// This, or...
	$('a.lightbox').lightBox(); // Select all links with lightbox class
	// This, or...
	$('a').lightBox(); // Select all links in the page
	// ... The possibility are many. Use your creative or choose one in the examples above
});

当我们在 中插入原生相册的时候,系统会自动在调用相册的源代码中加入 gallery 这个 class:
自动添加 gallery class

然后我根据 lightbox 的调用方法,将其中的

$('#gallery a').lightBox(); // 凡是带有 gallery ID 的对象都会启用 lightbox 特效

改为了

$('.gallery a').lightBox();// 凡是带有 gallery Class 的对象都会启用 lightbox 特效

即可,相当 Easy 吧~ 这样 D&Z Theme Pro CP 主题就能良好的支持 原生相册的功能了!

那么在一个不支持 lightbox 的 主题里我们要如何做呢?

先去官方网站下载一套 的 lightbox plugin ,解压压缩包之后分别在 js 目录和 css 目录下找到如下3个文件:
.js
.lightbox-0.5.min.js
.lightbox-0.5.css
将以上三个文件通过 FTP 上传到你所使用的 主题目录下
打开主题的 header.php ,将如下代码加入到 <head></head> 标签内:

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/jquery.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/jquery.lightbox-0.5.min.js"></script>
<script type="text/css" src="<?php bloginfo('template_directory'); ?>/jquery.lightbox-0.5.css"></script>

然后再加入上文介绍的:

<script type="text/javascript">
$(function() {
     $('.gallery a').lightBox();
});
</script>

就大功告成了~ 但是一般来说我们只会在文章页或者页面页调用相册功能,所以我们可以使用一个判断语句让它们只在这两类页面中加载:

<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/jquery.js"></script>
<?php if (is_single() or is_page()) { ?>
<script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/jquery.lightbox-0.5.min.js"></script>
<script type="text/css" src="<?php bloginfo('template_directory'); ?>/jquery.lightbox-0.5.css"></script>
<script type="text/javascript">
$(function() {
     $('.gallery a').lightBox();
});
</script>
<?php } ?>

That’s all~
使用以上方法我相信原生的 相册就能满足大部分用户的需求了,用它来代替功能强大但略显臃肿的 NextGEN Gallery 相册插件基本没啥问题~

看过以上介绍还不赶紧给自己的主题加上这么酷的效果?

zEUS.

  • 原文链接:
  • 转载原创文章请注明:

本文评论 10 comments

  1. 张三 说:

    我靠,林子你的变形金刚真多……

  2. Sivan 说:

    没抢到沙发。现在用的picasa相册没用本地存图所以暂时使不上。

  3. Cat. 说:

    我等了很久了!!

  4. 万戈 说:

    好像和我的主题无缘了。。。

  1. 无插件让Wordpress支持jquery lightbox » 四夕小罗
  2. 无插件实现 Wordpress Lightbox 特效 » 網生@誌 | zEUS.’Blog

Leave a comment

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。