我的设备插件(WordPress 插件) — 就爱重复造轮子

这个假期事情有点多,也就没回老家。主要是自己最近也不想回,好处就是有点时间可以折腾自己喜欢的东西。

说的更直接点就是有时间瞎折腾,不过这第一次的效果并不是很好,例如录的视频,mic声音太小的,只能强行网上拉。录视频的时候发现原来的录屏工具注册失败了,变成了未授权。ScreenRecorderpro 7.0在双4k屏上尝试录制,直接崩溃了,升级到8.0发现注册没处理好,有的地方没搞。

新版变成了64位的,懒得去修改二进制文件了,直接修改hosts屏蔽掉服务器校验:

__int64 __fastcall CheckSNOnLine(unsigned int a1, unsigned int a2)
{
  __int64 v2; // rdx
  __int64 v3; // rbx
  const WCHAR *v4; // rax
  const WCHAR *v5; // rax
  __int64 v6; // rdx
  __int64 v7; // rax
  __int64 WebContent; // rax
  __int64 v9; // rsi
  __int64 v10; // rdx
  __int64 v11; // rdx
  unsigned int vars44; // [rsp+44h] [rbp+44h]
  __int64 vars48; // [rsp+48h] [rbp+48h] BYREF
  __int64 vars50; // [rsp+50h] [rbp+50h] BYREF
  __int64 vars58; // [rsp+58h] [rbp+58h] BYREF
  __int64 vars60; // [rsp+60h] [rbp+60h] BYREF
  __int64 vars68; // [rsp+68h] [rbp+68h] BYREF
  __int64 vars70; // [rsp+70h] [rbp+70h] BYREF
  __int64 vars78; // [rsp+78h] [rbp+78h] BYREF
  int vars8C; // [rsp+8Ch] [rbp+8Ch] BYREF
  __int64 vars90; // [rsp+90h] [rbp+90h] BYREF
  __int64 vars98; // [rsp+98h] [rbp+98h] BYREF
  __int64 varsA0; // [rsp+A0h] [rbp+A0h] BYREF
  __int64 varsA8; // [rsp+A8h] [rbp+A8h] BYREF
  __int64 varsB0; // [rsp+B0h] [rbp+B0h] BYREF
  __int64 varsB8; // [rsp+B8h] [rbp+B8h] BYREF

  vars48 = 0;
  vars50 = 0;
  vars58 = 0;
  vars60 = 0;
  vars68 = 0;
  vars70 = 0;
  vars78 = 0;
  varsB8 = 0;
  varsB0 = 0;
  varsA8 = 0;
  varsA0 = 0;
  vars98 = 0;
  vars90 = 0;
  sub_7CDDB0(&varsA0);
  sub_7CC140(&varsB8, a1, a2);
  LOBYTE(v2) = 1;
  v3 = sub_59E6D0(&qword_59D078, v2);
  sub_59E980(v3, -2147483646);
  *(_DWORD *)(v3 + 44) = 131097;
  if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
  {
    sub_59F9E0(v3, &varsA8, L"LastTime");
    sub_59F9E0(v3, &varsB0, L"SN");
  }
  sub_59E940(v3);
  sub_434690(&vars78, varsB0);
  if ( !vars78 )
  {
    sub_59E980(v3, -2147483647);
    *(_DWORD *)(v3 + 44) = 131097;
    if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
    {
      sub_59F9E0(v3, &varsA8, L"LastTime");
      sub_59F9E0(v3, &varsB0, L"SN");
    }
    sub_59E940(v3);
  }
  sub_410F80(&vars70, L"*************:", varsA8);
  v4 = (const WCHAR *)sub_410B40(vars70);
  OutputDebugStringW(v4);
  sub_410F80(&vars68, L"--------------:", varsB0);
  v5 = (const WCHAR *)sub_410B40(vars68);
  OutputDebugStringW(v5);
  if ( (unsigned int)sub_411190(varsA8, varsA0) )
  {
    sub_434690(&vars60, varsB0);
    sub_40FF60(&varsB0, vars60);
    if ( varsB0 )
    {
      if ( (unsigned __int8)sub_7CB9B0() )
      {
        sub_7CC030(&vars58);
        sub_4110B0(&vars98, 3, L"http://gilisoft.com/webtools/livecheck/IsValidKey.php?key=", varsB0, vars58);
        sub_40F8B0(&vars90);
        if ( (unsigned int)sub_7CB9E0() )
        {
          sub_4106C0(&vars50, vars98, 0);
          v7 = sub_4105E0(vars50);
          WebContent = CURL_GetWebContent(v7, &vars8C);
          v9 = WebContent;
          if ( vars8C > 0 )
          {
            sub_410BA0(&vars90, WebContent);
            CURL_FreeBuffer(v9);
            sub_434690(&vars48, vars90);
            sub_40FF60(&vars90, vars48);
          }
        }
        else
        {
          sub_7CBA00(&vars90, vars98);
        }
        if ( (unsigned int)sub_411190(vars90, L"expired") )
        {
          *(_DWORD *)(v3 + 44) = 131103;
          if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
            sub_59F940(v3, L"LastTime", varsA0);
          sub_59E940(v3);
          LOBYTE(v11) = 1;
          (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v11);
          vars44 = -1;
        }
        else
        {
          *(_DWORD *)(v3 + 44) = 131103;
          if ( (unsigned __int8)sub_59EB90(v3, varsB8, 0) )
            sub_59F940(v3, L"SN", &dword_7CE3DC);
          sub_59E940(v3);
          LOBYTE(v10) = 1;
          (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v10);
          vars44 = 0;
        }
      }
      else
      {
        vars44 = -1;
      }
    }
    else
    {
      LOBYTE(v6) = 1;
      (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)v3 - 32LL))(v3, v6);
      vars44 = 0;
    }
  }
  else
  {
    sub_40C4B0(v3);
    vars44 = -1;
  }
  sub_40F8B0(&vars48);
  sub_40F900(&vars50);
  sub_40F990(&vars58, 5);
  sub_40F990(&vars90, 6);
  return vars44;
}

反正,能用就ok拉:

今天上午,有点时间,有拿出上周搞的那个我的设备页面插件,这个东西其实最开始也是抄来的:

抄作业–我的设备

前端时间,看大家都更新了,开始基于post类型来做展示,每个设备都是个单页能回复评论,忘了在谁那里看的了。总觉得有些过去强大了,虽然也是个插件。

最终还是决定自己找个轮子,于是就有了这个东西,使用插件生成的页面:

https://h4ck.org.cn/my-devices

整体页面样式沿用原来的,也不用在主题自定义添加css中添加样式了。新建页面,插入short code即可:

# Baby Device Manager

一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

## 功能特点

- 设备分组管理
  - 创建和管理设备分组
  - 自定义分组排序
  - 分组描述信息
- 设备管理
  - 添加/编辑/删除设备
  - 设备状态管理(在售、停售、已售出、维修中、已报废)
  - 设备图片和产品链接
  - 自定义设备排序
  - 设备描述信息
- 前端展示
  - 响应式布局
  - 按分组分类显示
  - 支持多种排序方式
  - 美观的界面设计
  - 支持自定义每行显示设备数量(1-6个)
- 其他功能
  - 图片管理:支持设备图片上传和显示
  - 产品链接:支持添加产品详情页链接
  - 状态跟踪:支持多种设备状态管理
  - 自定义排序:支持设备分组和设备的自定义排序

## 安装要求

- WordPress 5.0 或更高版本
- PHP 7.2 或更高版本
- MySQL 5.6 或更高版本

## 安装方法

1. 下载插件压缩包
2. 在WordPress后台进入"插件 > 安装插件"页面
3. 点击"上传插件"按钮,选择下载的压缩包
4. 安装完成后点击"启用插件"

## 使用方法

### 管理界面

1. 设备分组管理
   - 进入"设备管理 > 设备分组"
   - 添加新分组:填写分组名称、描述和排序值
   - 编辑现有分组:修改分组信息或删除分组
   - 排序值越小,显示越靠前

2. 设备管理
   - 进入"设备管理 > 添加设备"
   - 填写设备信息:
     - 设备名称
     - 所属分组
     - 设备描述
     - 设备状态
     - 设备图片URL
     - 产品链接
     - 排序值

### 前端显示

使用 shortcode 在页面或文章中显示设备列表:

1. 基本用法
```
【baby_devices】
```

2. 按分组显示
```
【baby_devices group="分组名称"】
```

3. 按状态显示
```
【baby_devices status="在售"】
```

4. 自定义排序
```
【baby_devices orderby="sort_order" order="ASC"】
```

5. 组合使用
```
【baby_devices group="厨房电器" status="在售" orderby="sort_order" order="ASC"】
```

6. 自定义每行显示数量
```
【baby_devices per_row="4"】
```

### Shortcode 参数说明

- `group`:按分组名称筛选
- `status`:按设备状态筛选
- `orderby`:排序字段
  - `sort_order`:按自定义排序(默认)
  - `created_at`:按创建时间
- `order`:排序方向
  - `ASC`:升序(默认)
  - `DESC`:降序
- `per_row`:每行显示设备数量(1-6个,默认:3)

### 设置

1. 在WordPress后台菜单中找到"设备管理 > 设置"
2. 设置每行显示设备数量(1-6个)
3. 点击"保存设置"按钮保存

## 注意事项

1. 首次启用插件时会自动创建必要的数据表
2. 删除插件时不会自动删除数据表,需要手动删除
3. 建议定期备份数据库
4. 图片URL需要是可访问的完整地址

## 更新日志

### 1.0.4
- 修复状态按钮样式问题
- 优化状态类名生成逻辑

### 1.0.3
- 添加新的设备状态选项
- 优化数据库表结构

### 1.0.2
- 更新数据库表结构
- 优化设备状态显示

### 1.0.1
- 添加设备显示设置功能
- 支持自定义每行显示设备数量

### 1.0.0
- 初始版本发布
- 支持设备分组管理
- 支持设备信息管理
- 支持自定义排序
- 支持前端展示

## 技术支持

如有问题或建议,请访问:
- 官方网站:https://h4ck.org.cn
- 问题反馈:https://h4ck.org.cn/contact

## 作者

- obaby
- 网站:https://h4ck.org.cn

## 许可证

GPL v2 或更高版本

需要使用英文的括号替换中文的方括号【】

系统截图:

项目地址:

GitHub – obaby/Baby-Device-Manager: 一个功能强大的WordPress设备管理系统插件,支持设备分组管理、设备信息管理、自定义排序、状态跟踪等功能。

插件zip包下载:

https://www.123912.com/s/ucY7Vv-iwAAA?提取码:PjEH

https://www.123865.com/s/ucY7Vv-iwAAA?提取码:PjEH

 

☆版权☆

* 网站名称:obaby@mars
* 网址:https://oba.by/
* 个性:https://oba.by/
* 本文标题: 《我的设备插件(WordPress 插件) — 就爱重复造轮子》
* 本文链接:https://oba.by/2025/06/20925
* 短链接:https://oba.by/?p=20925
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

30 comments

  1. Level 5
    Google Chrome 131 Google Chrome 131 Windows 10 Windows 10 cn中国–山东–青岛 联通

    整机好写点感觉。我都是散装拼装的。哈哈。所以不写了。

  2. Level 1
    Google Chrome 103 Google Chrome 103 Windows 8.1 Windows 8.1 cn中国–安徽–合肥 联通

    我也用群晖的NAS。不过我的比较简单,就是作了一个RAID 1阵列,备份图片和影片,没有使用其它的功能。

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      其实能用的东西还蛮多的,我现在用的最多的是 notes和文件管理。

  3.   Level 7
    Google Chrome 137 Google Chrome 137 Mac OS X 10.15 Mac OS X 10.15 cn中国–浙江–杭州 联通

    我竟然迟疑过会不会有 my-cars。放在最后一栏是你最大的低调了。

  4. Level 4
    Google Chrome 118 Google Chrome 118 Windows 11 Windows 11 cn中国–安徽–安庆 电信

    很多博主都有好物插件,这个能自定义每行个数

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      嗯嗯,这个是最后才加上的,改了下布局方式,毕竟每个主题的压面宽度可能都不一样。

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      嗯嗯,主要是原来的那个代码,想改点东西太麻烦了。

  5. Level 5
    Google Chrome 137 Google Chrome 137 Windows 10 Windows 10 cn中国–云南–丽江 电信

    果断收藏,后续启用改改CSS成我喜欢的就好了哈,感谢

  6. Level 4
    Firefox 139 Firefox 139 Windows 10 Windows 10 cn中国 中国电信

    看了设备才发现,你原来和我一样用 P30Pro 啊 ,这机器质量是真的棒。。。

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      嗯嗯,我是后来那个卡槽坏了,实在不想修了所以就换了。

  7.  Level 4
    Safari 18 Safari 18 Mac OS X 10.15 Mac OS X 10.15 cn中国–上海–上海–宝山区 电信

    我非 wp 程序,自己不会搞这种插件。
    你有没有可能,把它做成一个公开的,可以让访客填写自己的设备的,然后再整理使用过某款相同设备的人,都把名单列出来?

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      好物聚合?有点意思。倒是可以做个同类聚集网站或者app。
      不过一旦全部开饭就涉及到合法合规问题了,就怕有人在里面胡说八道。
      是个好创意哈。

      1.  Level 4
        Microsoft Edge 137 Microsoft Edge 137 Windows 11 Windows 11 cn中国–上海–上海–杨浦区 电信

        字段全都是选项,而不是自由填写和评论,应该就会好很多。

        1. 公主 Queen 
          Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

          这个东西如果自己维护物品太费劲了,肯定有遗漏,如果让用户创建,那就得审核,主要是这个问题。

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      嗯嗯,看到了。最开始看到的貌似不是你的这个,那个是基于文章的,所以我才又弄了一个,早看到你这个,我就不弄了。😂

  8.  Level 6
    IBrowse r IBrowse r Android 12 Android 12 cn中国–河南–漯河 电信

    NB了,特别适合物件多的物品,稍微修改还可以当做网站导航、应用推荐页面用。

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      倒也不是不行,基本多数的功能都改成可配置的了

  9.   Level 4
    Google Chrome 127 Google Chrome 127 GNU/Linux GNU/Linux cn中国–贵州–贵阳 移动

    这个好物是个不错的创意 东西有了 技术在哪儿领😂

    1. 公主 Queen 
      Google Chrome 134 Google Chrome 134 Mac OS X 10.15 Mac OS X 10.15 cn中国 中国联通

      哈哈哈,多数是 cursor 写的,直接找 cursor,技术也有了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注