分类: 网站

  • 让博客图片动起来!WordPress实现实况图预览(附插件)

    让博客图片动起来!WordPress实现实况图预览(附插件)

    本文参考 https://www.mancs.cn/856 修改为wp插件免费开源 滑到最下面获取下载链接吧。

    演示图

    认识Live Photo:超越静态的影像革命

    技术本质:Live Photo是苹果开发的动态影像格式(.livephoto),通过HEVC视频(3秒)与JPEG图片的封装组合,实现「按压查看动态效果」的创新交互。用户在WordPress中嵌入这类文件时,传统方案仅显示静态封面。

    官方调用方案解析(LivePhotosKit技术栈)

    Apple官方提供LivePhotosKit JS库实现跨平台支持,其运作流程如下:

    1. 文件规范
      • 必须同时提供.jpg静态图与.mov视频文件
      • 视频时长限制:1.5-3秒
      • 分辨率建议:720p及以上
    2. 基础调用代码

    WordPress深度整合实战(分步详解)

    以下内容来自 https://www.mancs.cn/856

    实现原理:

    WordPress 中引入 LivePhotosKit JS 库来支持实况图,并创建一个自定义古腾堡区块
    首先,我们需要在 WordPress 中引入 LivePhotosKit JS 库
    在你的主题的 functions.php 文件中添加以下代码:

    function enqueue_livephotoskit_script() {
     wp_enqueue_script('livephotoskit-js', 'https://cdn.apple-livephotoskit.com/lpk/1/livephotoskit.js', array(), null, true);
    }
    add_action('wp_enqueue_scripts', 'enqueue_livephotoskit_script');

    这段代码将在你的 WordPress 站点上加载 LivePhotosKit JS 库

    接下来,我们将创建一个自定义 Gutenberg 区块,使用户能够方便地在区块编辑器中添加支持实况图的区域

    function register_custom_live_photos_block() {
     wp_register_script(
     'custom-live-photos-block',
     get_template_directory_uri() . '/block.js',
     array('wp-blocks', 'wp-element', 'wp-editor', 'wp-components', 'wp-i18n'),
     filemtime(get_template_directory() . '/block.js')
     );
    
     register_block_type('custom/live-photos-block', array(
     'editor_script' => 'custom-live-photos-block',
     'render_callback' => 'render_custom_live_photos_block'
     ));
    }
    add_action('init', 'register_custom_live_photos_block');
    
    function render_custom_live_photos_block($attributes) {
     if (!isset($attributes['photoURL']) || !isset($attributes['videoURL'])) {
     return '';
     }
    
     $width = '100%';
     $height = '300px'; // Example fixed height, adjust as necessary
    
     return sprintf(
     '<div class="live-photo-wrapper" style="width:%s; height:%s; position:relative;">
     <div data-live-photo data-photo-src="%s" data-video-src="%s" style="width:100%%; height:100%%;"></div>
     </div>',
     esc_attr($width),
     esc_attr($height),
     esc_url($attributes['photoURL']),
     esc_url($attributes['videoURL'])
     );
    }
    

    主题跟目录创建一个 JavaScript 文件 block.js,并添加以下代码

    (function (blocks, editor, element, components) {
     var el = element.createElement;
     var MediaUpload = editor.MediaUpload;
     var InspectorControls = editor.InspectorControls;
     var TextControl = components.TextControl;
    
     blocks.registerBlockType('custom/live-photos-block', {
     title: 'Live Photos Block',
     icon: 'camera',
     category: 'media',
     attributes: {
     photoURL: {
     type: 'string',
     default: ''
     },
     videoURL: {
     type: 'string',
     default: ''
     },
     width: {
     type: 'number',
     default: 400
     },
     height: {
     type: 'number',
     default: 300
     }
     },
    
     edit: function (props) {
     var attributes = props.attributes;
     var setAttributes = props.setAttributes;
    
     return el(
     'div',
     { className: props.className },
     el('p', {}, '选择图片和视频:'),
     el(
     MediaUpload,
     {
     onSelect: function (media) {
     setAttributes({ photoURL: media.url });
     },
     allowedTypes: 'image',
     render: function (obj) {
     return el(components.Button, {
     className: attributes.photoURL ? 'image-button' : 'button button-large',
     onClick: obj.open
     },
     !attributes.photoURL ? '选择图片' : el('img', { src: attributes.photoURL })
     );
     }
     }
     ),
     el(
     MediaUpload,
     {
     onSelect: function (media) {
     setAttributes({ videoURL: media.url });
     },
     allowedTypes: 'video',
     render: function (obj) {
     return el(components.Button, {
     className: 'button button-large',
     onClick: obj.open
     },
     '选择视频'
     );
     }
     }
     ),
     el(InspectorControls, {},
     el(TextControl, {
     label: '宽度(px)',
     value: attributes.width,
     onChange: function (value) {
     setAttributes({ width: parseInt(value, 10) || 0 });
     }
     }),
     el(TextControl, {
     label: '高度(px)',
     value: attributes.height,
     onChange: function (value) {
     setAttributes({ height: parseInt(value, 10) || 0 });
     }
     })
     )
     );
     },
    
     save: function () {
     // 后台通过 PHP 渲染,前端保存为空
     return null;
     }
     });
    }(
     window.wp.blocks,
     window.wp.editor,
     window.wp.element,
     window.wp.components
    ));

    插件版本

    本站把它改为插件 使用方法如下 安装启用插件 在编辑器内找到 LIve Photos Block 按图操作。

  • 一个使用 Vue 3 + TypeScript + Vite 构建的现代化个人主页

    一个使用 Vue 3 + TypeScript + Vite 构建的现代化个人主页

    原文转自 https://www.lik.cc/archives/homeforvue

    Home For Vue

    一个使用 Vue 3 + TypeScript + Vite 构建的现代化个人主页,具有博客文章展示、项目展示、联系表单等功能。

    特性

    • 🚀 使用 Vue 3 + TypeScript + Vite 构建
    • 🎨 支持深色模式
    • 📱 响应式设计,支持移动端
    • ⚡️ 快速加载和页面切换
    • 🔍 SEO 友好
    • 🌐 支持多语言
    • 📝 Markdown 博客支持
    • 📦 组件自动导入
    • 🎯 TypeScript 类型安全
    • 🔧 可配置的主题

    技术栈

    • Vue 3
    • TypeScript
    • Vite
    • Vue Router
    • TailwindCSS
    • PostCSS
    • ESLint + Prettier
    • Husky + lint-staged

    开发

    项目结构

  • 「开源」奶狗珠宝证书管理插件 for WordPress

    「开源」奶狗珠宝证书管理插件 for WordPress

    闲来无事写的珠宝证书管理插件,基于WordPress

    支持功能

    • 珠宝商品增删改查
    • 证书编号自定义
    • 收货手机尾号后四位为校验码

    演示图

    后台

    前台

    小程序&网页&app

    因为是uniapp写的,理论可以搞成安卓/ios/鸿蒙app。

    演示站

    http://aa.naigou.cn 演示证书 HTY001 电话尾号后四位1521

  • 仿小米日历的一个卡片日历html页面

    仿小米日历的一个卡片日历html页面

    最近看到小米的日历软件更新了,发现了个不错的东西,新增了一个台历的页面,意外的感觉很好看,想着搞到博客里,当个小工具,先写了一点点,后面再完善。

    演示图

    PC

    手机

    目前只写了单页,想移植到博客的,自行参考。使用了https://api.shwgij.com的 农历api和api.hn的图片api。

  • 奶狗赞赏V1.4.0 极简风格的赞赏程序

    奶狗赞赏V1.4.0 极简风格的赞赏程序

    前言

    找到之前的一个要饭程序 看版权上写的 烟雨寒云 但是他的网站打不开了,发动偷偷技能,使用微信的 weui 改了个 css 样式,修复了原版的一些功能。

    欢迎搬运,可以不带原文链接,但是请不要改我的名字,也不要拿去售卖,Functions.php 已经加密。并带有版权信息。

    演示站

    https://demo.naigou.cn

    支持功能

    • 自定义金额打赏
    • 后台功能
    • 对接彩虹易支付
    • 赞助时输入QQ号 获取昵称以及头像
    • 赞赏时留言
    • 总赞助金额统计
    • 赞助者位置显示(根据用户IP)

    V1.4.0

    新增固定金额按钮,默认隐藏手动输入。优化支付方式逻辑,新增默认黑白颜色,选中时恢复原色彩,新增默认支付方式选择。默认支付宝支付

    V1.3.1

    由于没有稳定的获取QQ昵称的接口,调整为手动输入昵称模式。代码无需更改,替换根目录的index.php即可

    V1.3.0新增功能

    • 新增赞助用户全部信息展示(朋友圈UI)
    • 优化部分样式

    V1.2.1新增功能

    • 新增收到赞助后邮箱通知

    V1.2 新增功能

    • 赞助金额前三位,新增角标提示
    • 移除原有弹窗提示,更改为Weui提示样式
    • 留言内网站自动识别为外链(需带http/https)
    • 删除无用css js 图片文件,占用更小
    • 后台弹窗样式优化

    V1.1 新增功能

    • 更改赞助人员逻辑 按赞助金额从大到小排列
    • 赞助列表新增翻页按钮,并优化细节
    • 优化暗黑模式的部分问题

    V1.0.1 新增功能

    • USDT赞赏
    • 支付方式小图标
    • 更换IP库的API
    • 修复底部版权和备案号不显示的BUG

    演示图

  • woocommerce彩虹易支付插件

    woocommerce彩虹易支付插件

    前言

    这个源码是很早之前下载的,原版由于时间问题已经找不到原作者了。并且原版不支持7.2+的php。

    代码里有原作者的信息 https://www.mebi.me/232.html 原作者的版本是4年前的了,也不支持PHP7.2+版本,于是稍微改了改。

    解决方法也很简单。错误是因为代码中使用了 each() 函数,而这个函数在 PHP 7.2 版本中已经被移除。each() 函数曾经用于遍历数组,但由于它被废弃并移除,因此代码需要更新以使用受支持的方法。要解决这个问题,应该将 each() 函数替换为 foreach 循环或其他适当的方法,具体取决于代码的功能。

    本着互联网免费分享的精神,本插件免费分享给各位。估计会有某些投机倒把的拿这个插件去卖钱,我也是管不了的。

    演示图

    支持三网支付 QQ/微信/支付宝。(也支持usdt)暂时先不发,我重新改了一套。

    重构版

  • 【伪原创】抽奖工具网页源码分享

    【伪原创】抽奖工具网页源码分享

    望周知本人于2024年8月6日,晚上8点在星瞳直播间抽到黑神话悟空CDK

    感觉星瞳直播时的抽奖工具不错,就照着样子抄了一份,免费分享给各位下载使用。(菜鸟一个,有bug敬请谅解)

    演示视频

    演示图

    功能简介

    • CSV导入参与者信息
    • 自动转换为json,方便调用
    • 简单好用
    • 没了

    没那么多废话,直接发源码 (本站不会搞关注公众号的恶心人下载,本站拒绝使用任何垃圾网盘 如夸克 城通等)