快速提示:将Colorbox集成到原生Shortcode中

WBOY
WBOY 原创
2023-09-02 18:46:01 229浏览

原生 [图库] 短代码很好,但不是很好。在这个快速技巧中,我们将使用 jQuery 来美化它。

[图库] 短代码不是很好。你不能禁用它的默认 CSS,你不能添加或编辑 CSS 类,你不能编辑默认属性(这实际上是一个普遍的短代码问题)......虽然这些东西不会打扰大多数人WordPress 开发者,像我这样的怪人可能会抱怨! :)

在这个快速技巧中,我们将摆脱图像附件页面,并让我们网站的访问者在 jQuery 模式框中浏览图像。


最好的 jQuery Lightbox 插件之一:ColorBox

Colorbox 小于 5KB(压缩后)并支持广泛的浏览器(甚至包括 IE6),是我最喜欢的 jQuery lightbox 插件。

快速提示:将Colorbox集成到原生Shortcode中

正如您从插件页面中看到的,它具有大量设置、方法和挂钩,因此您可以按照您想要的方式自定义它。它还具有 5 个简洁的基于 CSS 的主题。

下载该包并将 colorbox.min.js 和 5 个主题之一(colorbox.css 文件和“images”文件夹)提取到名为“colorbox”的文件夹中,然后将该文件夹上传到您的 WordPress主题。上传前在colorbox.min.js文件末尾添加以下代码:

jQuery(document).ready(function($) {
	$(".gallery-icon a").colorbox({rel:"gallery"});
});

Shortcode-Ception:构建使用另一个短代码的短代码

我知道这会有点奇怪,但这似乎是最干净的方式。我们将创建 [jgallery] 短代码。

快速提示中的提示:如果您打算在创建 [jgallery] 短代码后更改帖子中的所有图库短代码,我建议使用搜索正则表达式插件来搜索/替换 [gallery] [jgallery].

像往常一样,我们将从创建基本的短代码函数开始:

function jgallery_sc() {
	// No parameters? This is madness!
}
add_shortcode('jgallery','jgallery_sc');

接下来,我们将 CSS 和 JS 文件入队。不要忘记,通过指定 Colorbox 脚本依赖,jQuery 将自动入队(如果尚未入队)。

function jgallery_sc() {
	// Enqueue colorbox.min.js (and jQuery if it is not already loaded)
	wp_enqueue_script('colorbox-js', get_template_directory_uri().'/colorbox/colorbox.min.js',array('jquery'));
	// Enqueue colorbox.css
	wp_enqueue_style('colorbox-css', get_template_directory_uri().'/colorbox/colorbox.css');
}
add_shortcode('jgallery','jgallery_sc');

一切都准备好了,除了我们需要在这个函数中使用 [gallery] 短代码。我们将使用 do_shortcode() 函数并返回 [gallery link="file"] 短代码:

function jgallery_sc() {
	wp_enqueue_script('colorbox-js', get_template_directory_uri().'/colorbox/colorbox.min.js',array('jquery'));
	wp_enqueue_style('colorbox-css', get_template_directory_uri().'/colorbox/colorbox.css');
	return do_shortcode('[gallery link="file"]');
}
add_shortcode('jgallery','jgallery_sc');

全部完成!将此函数添加到主题的 functions.php 文件中后,您可以立即开始使用 [jgallery] 短代码。请在下面的评论中告诉我们您的想法。享受! :)

以上就是快速提示:将Colorbox集成到原生Shortcode中的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。