标签:

  • Thinkphp课程表小程序源码v1.0.0全开源版 前后端分离

    Thinkphp课程表小程序源码v1.0.0全开源版 前后端分离

    Thinkphp课程表小程序源码v1.0.0全开源版 前后端分离

    练手Lab课程表小程序源码是一个基于Thinkphp系统进行开发的前后端分离系统。

    源码功能介绍

    1、情侣功能

    2、情侣间留言

    3、情侣间互相设置课程表背景

    4、自己日、周课程表背景设置

    5、教务系统课程表导入

    6、导入别人分享的课表

    7、导入别人分享的单课

    8、多校支持

    9、首页顶部氛围设置(管理员设置,节日氛围)

    环境要求

    1、服务端:php+mysql(基于fastadmin)

    2、小程序端:原生+colorui

    准备工作

    1、需自备服务器和备案过的域名

    2、申请https证书,dnspod网站可以免费申请一年的

    3、安装PHP运行环境(PHP >= 7.1 且 = 5.5.0)

    4、到微信公众平台,申请一个小程序,获取AppID和AppSecret

    服务端部署教程

    1、添加站点并上传代码至根目录

    2、绑定到项目中的public目录为运行目录,伪静态选择thinkphp

    3、输入你绑定的域名,会自动跳转至安装界面

    4、根据提示安装(以上三步其实是安装fastadmin框架)

    5、进入后台,插件管理里面,搜索“练手课表”,安装

    6、安装第三方登录插件

    7、设置小程序AppID和AppSecret(微信公众平台获取),练手Lab秘钥(独立版部署的话,自己生成一个16位的字符串就行),站点id不要改!!!

    8、服务端部署完毕

    小程序端部署教程

    小程序端源码在wxapp文件夹下

    在微信开发者工具里面,左上角选择项目,导入项目,选择这个文件夹

    1、修改config.js文件下的cryptoKey,自己生成一个16位的字符串

    2、修改baseUrl里面的域名,改成你自己的(注意在微信公众平台里面,添加白名单)

    3、修改project.config.json文件里面的appid为自己的

    4、微信开发者工具,右上角详情里面,勾选ES6转ES5

    5、如果报错,请检查是否配置了白名单,配置之后,在项目配置里面(见上图右上角),点刷新

    6、预览,没问题就可以上传了

    使用手册

    1、首页顶部氛围设置。因为课程表小程序太工具了,没有杂七杂八的功能,所以可运营空间不强,所以增加了这个功能,如端午,中秋换个背景之类的,甚至可以开放投稿,让学生拍校园风景并给其署名,每日更换一张。

    2、可以分学校设置上课时间、冬、夏令时日期,互相之间不影响,到日期自动切换

    3、导入教务系统课程表需要适配,目前支持正方和青果的教务系统

    4、分享整个课程表,可以生成小程序码,适用于同一个班级,课程表一致的情况,直接打印小程序码让同学扫就可以导入课程表

    5、分享单课,适用于每个同学的课程表都不一致的情况,可以直接在教室门口贴单课的小程序码,只导入该课的课表

  • PBootCMS插件-免费采集伪原创发布推送插件 PbootCMS采集方法详解

    PBootCMS插件-免费采集伪原创发布推送插件 PbootCMS采集方法详解

    关于PbootCMS采集一直是PbootCMS站长非常头疼的问题,PB插件市场并没有提供很好的Pb采集插件,今天我说一下PbootCMS如何可以直接上手实用PbootCMS采集,操作非常简单。PBootCMS采集无论你的网站是帝国、易优、ZBLOG、织梦、WP、云优CMS、人人站CMS、PBootCMS、小旋风、站群、PBoot、苹果、米拓、搜外等各大CMS。

    PBootCMS采集关键词优化首页肯定是满足了这个关键词的用户需求才有的结果,那么站在搜索引擎的角度来看的话。通过PBootCMS采集可以直接查看每天的蜘蛛、收录、以及网站权重。关键词肯定是要有用户搜索量的,并且该关键词所涉及到的问题在整个网站的页面当中都已经非常全面的解释和说明到了。在这样的基础上,对搜索引擎蜘蛛的页面抓取机制的友好度,链接可以及时被搜索引擎收录。符合搜索引擎排名规则的综合得分等细节都要到位之后,这个页面的关键词优化首页成为一种水到渠成的事情。

    如果下面讲到的因数都不存在,那么新站人员好好看看这条,就能解决收录问题。首先新站刚刚创建起来,当然是要去搜索引擎提交网站喽,提交后网站就不能改动太频繁,会导致信任度降低,新站建议多去做做外链,在网站质量没问题的情况下在一个高权重的网站上外链,基本隔天就能收录。如果不发外链可能多则一个月都不会收录。

    PBootCMS采集插件上可以直接监控已发布、待发布、是否伪原创、发布状态、网址、程序、发布时间等。老站不收录一般都是指内容页不收录,一般老站内容页不收录的情况,基本和内容质量有关系,网站存在大量的转载采集内容导致内容页一直迟迟不会收录。当然新站也一样,如果首页内容和其他网站一模一样也会导致的,一开始搭建网站的时候一不小心测试的网址被百度收录,导致博客一直迟迟没被收录。

    服务器稳定不稳定、网站存在大量广告、网站存在大量的死链接、网站不利于用户体验、网站存在大量JS、Robots文件、网站加Flash等等。都会存在不被收录的原因,但是一般很少有人会出现这些问题,所以就一笔带过。

    虽然这些因素不会影响你网站的收录,但是会让你网站迟迟没有排名,所以推荐大家尽量避免上面的因素。

    PBootCMS采集支持批量监控管理不同的CMS网站数据,PBootCMS采集可同时批量管理采集伪原创并发布推送的工具。站在网站本身的角度来说,需要根据网站的成长周期而定的。新站期的时候哪些关键词会获得优化到首页的效果,老站期的时候又会有哪些关键词是获得优化效果的等。PBootCMS采集可以批量设置发布数量,PBootCMS采集可设置发布间隔/单日总发布数量。这里牵扯到的是网站seo基础优化、网站的内容质量、网站的站内站外优化策略的实施等等一系列优化方案的执行度来决定的,PBootCMS采集定时发布网站内容让搜索引擎养成习惯定时抓取网页,从而提高网站的收录。通过PBootCMS采集插件填充内容,根据关键词采集文章。当然,前提是优化策略方案的准确和质量是否到位的问题了。

    PBootCMS采集不同关键词文章可设置发布不同栏目。针对于浏览用户来说的话,也就是通常一直要强调的用户体验和用户需求这两个点。PBootCMS采集使得用户体验是要根据用户的浏览行为制定合理的页面布局,PBootCMS采集让用户需求则是需要通过内容的方式加上图文并茂或者视频的元素。PBootCMS采集发布插件还配置了很多SEO功能,不仅通过PBootCMS发布实现采集伪原创发布主动推送给搜索引擎,同时PBootCMS采集还有很多SEO方面功能。能提升关键词密度还能提升页面原创度,增加用户体验做到高质量内容。促成一个高质量的网站内容并且来讲所布局在页面标题当中的关键词进行一个完美的解释,从而来满足用户所提出问题的解答。

    PBootCMS采集如何网站快速收录?其实想让百度快速收录很简单,最重要的两点就是:原创内容和外链。这两点做好收录肯定是没问题,这里在分享分享一些可以帮助大家促进收录的方法:

    PBootCMS采集制作网站地图:制作网站地图是必须的,不然百度都不知道你网站存在哪些链接。

    做网站优化的站长朋友都希望把网站的关键词优化到首页,PBootCMS采集内容关键词插入,PBootCMS采集可以提高合理提升关键词密度。而同行那么多,我们应该如何把关键词做上首页呢?PBootCMS采集可以让一个人维护成百上千网站文章更新也不是问题。其实我们都知道关键词优化首页的原理关键还是在于高质量内容的输出,PBootCMS采集不管你有几百还是上千个不同的PBootCMS网站或者其它网站都能实现统一管理。PBootCMS采集支持伪原创保留词,PBootCMS采集在文章原创时设置核心词不被伪原创。百度官方一直强调用户体验也就是这样道理, 可以 打造高质量内容才能提升网站有效收录,有了收录,我们才能谈排名,并通过各种外链或者内链又或者聚合页,PBootCMS采集内容与标题一致,PBootCMS采集让内容与标题相关性一致。标签页面的优化来促进网站权重的提升,从而带动更加有难度的关键词的排名竞争度,形成一种良性循环的优化效果,(PBootCMS采集插件还配置了关键词采集功能以及不相关词屏蔽功能)小编告诉大家,只有把基本的seo优化做好了,再配合一点快排或者高权重的友情链接,关键词上 首页是迟早的事!

     

    PBootCMS采集提供友情链接:可以去和别人多交换交换友情链接,新站基本上只能和新站交换友情链接,选择友情链接的时候一定要选择那种快照经常更新的网站。

    PBootCMS采集选择老域名:如果选择一个以前没有被K或者没做过违法词的域名,基本都能解决快速收录问题。PBootCMS采集还可以随机图片插入,PBootCMS采集文章没图片可随机插入相关图片。

     

    PBootCMS采集支持搜索引擎推送,PBootCMS采集文章发布成功后,PBootCMS采集主动将文章推送给搜索引擎包括百度、搜狗、神马、360等4大搜索引擎,PBootCMS采集提供外链。

    PBootCMS采集看中内容质量:内容质量非常重要,别想着在网上复制来的内容就能被搜索引擎收录,没权重没信任度的网站,想都别想。PBootCMS采集执行发布任务时自动在文章内容中生成内链,PBootCMS采集有助于引导页面蜘蛛抓取,提升页面权重。

    今天关于PbootCMS采集插件的讲解都到这里,还有使用PBootCMS采集插件的时候,大家千万不要屏蔽蜘蛛,这样会导致网站不会被收录,建议网站在测试阶段的时候开启,防止测试的时候网站就被收录了。

  • 【全网首发】TG云支付公益版

    【全网首发】TG云支付公益版

    此程序需要安装sg13组件 请在源码内查看教程

    TG云支付系统全网首发分站功能!
    此版本公益版本免费使用
    更新日志
    V1.8(2023.3.27)
    1.投诉功能增加分配到商户,和邮箱提醒商户未处理投诉!
    2.增加系统机器人,插件请到售后群免费下载使用
    3.优化部分页面
    4.增加个人免签框架(为下个版本切换免签后台做预备)
    PS:此版本更新后请到后台更新通道①下载数据库更新包
    并导入不然商户中心会出现进不去的问题!
    V1.7(2023.3.20)
    1.增加应用市场,站长可在市场内选择需要的插件
    2.增加系统QQ机器人配置
    3.修复订单投诉后台无法开启的bug
    4.增加分站开通,邮箱提示
    V1.6(2023.2.14)
    1.修复收费注册支付
    2.优化分站开通页面
    3.优化全站访问速度
    4.此版本修复全部已知bug
    V1.5(2023.2.18)
    1.前台,用户中心首页添加在线开通分站页面
    2.后台增加网站安全配置
    3.后台增加系统分站配置
    4.增加链接终端功能
    5.修复注册页面客服跳转问题
    6.修复后台无法刷新,无法添加用户组的bug
    V1.4(2023.2.18)
    1.修复收费注册支付后无法自动开通的BUG
    2.增加一套原创主题模板
    3.增加分销系统申请渠道
    4.分销系统改版,利用建站原理,如需使用请联系作者配置!
    5.增加支付页面显示投诉地址
    6.增加控量功能
    7.修改对接文档API
    V1.3
    (2023.2.14)
    1.后台增加插件管理站长可自助选择插件
    2.修复数据库无法自动备份的bug
    3.增加分销商系统,站长可在用户组自行编辑分销商名称
    PS:分销商利用建站系统原理
    搭建分销商只需要把域名解析到消失的星空海官网
    客服会帮您配置,两分钟即可完成建站!
    注:分销商无法更改支付接口,只能对接您的主战!
    4.增加分销商独立后台,前台,用户中心
    5.分销商可在后台查看自己余额,以及对接订单!
    V1.2
    (2023.1.27) 1.增加网站数据库自动备份
    PS:站长可在后台设置备份周期
    2.增加两个更新通道,防止部分服务器无法更新的问题
    3.新增用户登陆邮箱提醒(防止金额金额被刷)
    PS:(后台必须配置好邮箱信息,不然用户中心不会被触发邮箱)

    V1.1
    (2022.12.5) 1.增加订单投诉+查询功能
    2.后台可查看顾客投诉,可在后台回复处理投诉!
    3.修复后台js运行问题
    4.增加推广PS:已修复!
    5.增加站长信息配置!
    6.增加全站在线客服,可在APP回复信息!
    7.增加售后三通道,可在站长信息配置
    8.用户中心余额充值美化
    9.商户可在用户中心自定义退款

    V1.0
    (2022.7.18) 1.整体修改
    2.前台,用户中心,后台,全部美化
    3.修复授权域名问题
    4.增加订单查询

    未央资源网图片
    未央资源网图片
    未央资源网图片

  • 苹果CMS Mxone Pro开源版无加密v7.2

    苹果CMS Mxone Pro开源版无加密v7.2

    MXPro模板主题(又名:mxonepro)是一款基于苹果cms程序的一款全新的简洁好看UI的影视站模板类似于西瓜视频,不过同对比MxoneV10魔改模板来说功能没有那么多,也没有那么大气,但是比较且可视化功能较多简洁且有周更记录样式等多功能后台设置,类似预mxone魔改版的预告片功能,用来做影视站模板也是极好的,但之前的作者好像不再进行更新就卖给了首涂模板需要授权才能使用,但是首涂拿到之后基本上是不会再次更新了,目前名称是:首途第二十九套模板。

    模板安装方法

    1、解压文件到网站根目录

    2、首先应该是要先打开前台,然后他就会自动创建后台菜单的方法

    3、打开苹果cms后台在快捷菜单添加mxpro主题,mxone/mxoneset[/hidecontent]

  • 可以替代ChatGPT的AI

    Neuroflash

    Europe’s No.1 AI text & image generator | neuroflash

    那么 Neuroflash 就主要服务于德语内容生成器。 Neuroflash 基于 GPT-3.5 构建的聊天助手是 ChatGPT 的绝佳替代品。 与 ChatGPT 和其他类似工具不同,Neuroflash 不需要单独的用户界面——它可以在常规文本编辑器中轻松访问,与 ChatGPT 一样,Neuroflash 也可以编写代码。 遗憾的是没有像ChatGPT那样的语法高亮

    Jasper Chat

    Jasper Chat – Jasper

    Jasper 是目前市场上最流行的文本生成器之一。 与 Writesonic 类似,Jasper 对 ChatGPT 的发布反应非常迅速,并在 ChatGPT 发布大约三周后的 2022 年 12 月 20 日发布了 Jasper Chat 功能.   但是Jasper Chat 还不能从互联网上提取数据,这就是聊天机器人有时会重现过时信息并且无法提供来源的原因。

    Chatsonic (Writesonic)

    ChatSonic – A ChatGPT Alternative With Superpowers and GPT-4 (writesonic.com)

    Chatsonic 是 AI 文本生成器 Writesonic 的一项新功能,它可以说是英语文本 ChatGPT 的最佳替代品。该工具目前仍处于测试阶段,比如说如果工具无法处理输入,不会生成任何输出。

    Chatsonic 也不会编写代码,但是与 ChatGPT 相比,它具有显着优势:

    它提供了访问当前谷歌数据的选项,而 ChatGPT 的答案有时是 1、2 或 3 年前的。比如说当你询问时事时,比如 2022 年世界杯,你会从 Chatsonic 得到正确答案

    Perplexity AI

    Perplexity AI

    Perplexity 是一个基于 OpenAI API 的搜索引擎,但与 ChatGPT 不同的是它的答案中不仅包括训练数据,还包括来自互联网的内容.

    我认为搜索结果和聊天响应的混合显示是引领潮流的。 可以想象未来的 Google 或 Bing 可能看起来像这样,或者至少是类似的东西。

    Perplexity 不是聊天机器人,而是搜索引擎(或者更准确地说,是答案引擎),其输出中不包含过去的问题或搜索词。

    希望本文对你有所帮助

  • 流浪地球之修改开机动画、开机铃声、系统提示音

    流浪地球之修改开机动画、开机铃声、系统提示音

    《流浪地球2》真TM好看!看完后劲有点大!整点周边过过劲! 本文所用工具及素材见本文最后!

    流浪地球之修改开机动画、开机铃声、系统提示音

    一、修改开机动画

    ①准备好素材:

    流浪地球之修改开机动画、开机铃声、系统提示音

    ②使用工具:UefiLogo

    流浪地球之修改开机动画、开机铃声、系统提示音

    再次提醒:图片要以splash命名,bmp格式,工具目录不要出现中文。

    ③步骤:

    Ⅰ-准备妥当后,双击setup.exe,显示如下窗口

    流浪地球之修改开机动画、开机铃声、系统提示音

    Ⅱ-输入i,开始替换(如果需要还原,输入d即可)(首次安装只有第一个和第四个选项)
    Ⅲ-两次弹窗,第一次弹出记事本名为config.txt,不管,关掉,第二次弹出你设置的图片,确保没问题,关掉
    Ⅳ-黑窗口显示“HackBGRT is now installed,Press any key to quit.”,即成功,按任意键退出,重启电脑即可看到

    二、修改开机铃声
    注意,如果你电脑本身开机就没声音,看最后一个图
    ①准备好素材
    ②使用工具:StartupSoundChanger

    流浪地球之修改开机动画、开机铃声、系统提示音

    ③步骤:
    Ⅰ-打开软件,见上图
    Ⅱ-点击replace,选择你要使用的开机铃声(仅wav格式)
    Ⅲ-点击play,试听当前开机铃声
    Ⅳ-点击exit,退出软件
    Ⅴ-重启电脑

    三、系统提示音

    ①准备好素材
    ②步骤:打开控制面板,查看方式选择“大图标”,点击声音,弹出新窗口,点击声音

    流浪地球之修改开机动画、开机铃声、系统提示音

    流浪地球之修改开机动画、开机铃声、系统提示音

     

  • [端游] 价值5000定制商端梦幻西游可KF一键端

    [端游] 梦幻西游5000定制商端可KF一键端

    任务修炼跟BB修炼跟梦幻一摸一样,任务修炼在兔子旁边点,BB任务在西凉国,本端除了养殖系统不能玩之外,其他跟梦幻没有区别,
    套装效果目前我测试了定心,横扫,龙卷,漫天套,动物套测试了敏捷套都没毛病,其他的你自己慢慢试,套装跟原本一样,变身卡部分高端的可以升级进阶变身卡,6级卡以下的只有普通的变身卡,跑环,跑商,青龙,师门,抓鬼。封妖,任务,周日活动,称谓,官职,商会系统都可以玩,没有宝宝仓库,自己宠物多了可以直接买个商会直接丢商会很方便,挖宝也是原版的,打造几率修改了,出极品概率比叫高,基本打造2车必出一极品,副本大部分都修复了,个别比较繁琐的没弄,其他功能自己慢慢试把

  • 2023最新微信域名拦截检测API源码,检测域名是否能在微信正常打开!

    2023最新微信域名拦截检测API源码,检测域名是否能在微信正常打开!

    众所周知,域名在微信被封有3种情况:

    第一种:浏览器访问

    第二种:非官方网页

    第三种:停止访问网页

    被封原因:

    第一种:腾讯垄断市场!不准对他有威胁的同行的域名在微信正常访问!经典的案例就是抖音、淘宝、支付宝。

    第二种:不常见的域名后缀,或者是未备案的域名后缀会出现这个。常见的域名后缀即便是未备案也不会这样!

    第三种:违规了。违反《微信外部链接内容管理规范》

  • 【侠客行】Linux手工端+GM后台+武侠手游apk客户端+架设教程

    【侠客行】Linux手工端+GM后台+武侠手游apk客户端+架设教程

    搭建说明:

    系统:Centos 7.*

    配置2核 4G

    安装宝塔

    yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

    安装环境

    Nginx-1.18

    MySQL5.6 插入 lower_case_table_names=1 保存重启数据库

    PHP5.6

    redis6.2

    宝塔上传文件

    xkx.zip到根目录

    cd /

    unzip xkx.zip

    命令行

    chmod -R 777 /home

    chmod -R 777 /root

    chmod -R 777 /usr/bin/qd

    安装JAVA

    cd /root

    rpm -ivh jdk-8u251-linux-x64.rpm

    宝塔 – 数据库 – root密码 输入 123456 提交

    创建数据库用户

    mysql -u root -p123456
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    FLUSH   PRIVILEGES;
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    FLUSH   PRIVILEGES;
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    FLUSH   PRIVILEGES;
    
    quit

    关闭防火墙

    systemctl stop firewalld.service
    
    systemctl disable firewalld.service

    导入数据库【根据自己操作习惯,不同方式导入】

    jin_db

    user

    添加网站 服务器IP:30000【有域名可以用域名】

    指向目录/home/ChangYou/www

    修改IP路径

    /home/ChangYou/config/global_extend.properties
    
    /home/ChangYou/www/CommonServerXKX/serverList
    
    cd /home/ChangYou

    ./gameserver.sh start 启动游戏

    ./gameserver.sh stop  关服跑路

    查看端口

    netstat -ltnp

    客户端

    Package\assets\bin\Data\Managed\Metadata\global-metadata.dat

    【UE16进制编辑用13位域名代替】

    Package\assets\version.txt

    【42.193.143.250】

    后台地址

    http://服务器IP:30000/gm/gm.php

    GM码:436043762

    然后就可以【体验游戏】了

    游戏架设周边工具集合:

    链接:https://pan.baidu.com/s/1tDZQgJCYUM-3fT-OJeJyLw

    提取码:6rsp

  • 【定制】7b2主题用户自定义选择底部样式

    【定制】7b2主题用户自定义选择底部样式

    <?php 
    //样式1
    $text_footer_title_ysa=b2_get_option('Jitheme_footer_tab2','text_footer_title_ysa');
    $text_footer_desc_ysa=b2_get_option('Jitheme_footer_tab2','text_footer_desc_ysa');
    //样式2
    $link_cats = b2_get_option('template_footer','link_cat');
    $beian = b2_get_option('template_footer','footer_beian');
    $gongan = b2_get_option('template_footer','footer_gongan');
    $gongan_code = (int) filter_var($gongan, FILTER_SANITIZE_NUMBER_INT);
    $mobile_show_link = b2_get_option('template_footer','footer_mobile_show_links');
    $footer_img = b2_get_option('template_footer','footer_img');
    $onecad_footer_ysb_jj=b2_get_option('Jitheme_footer_tab3','onecad_footer_ysb_jj');
    //获取代码
    if($onecad_footer_ysb_jj){
    $none='style="display: none;"';
    }else{
    $none="";
    }
    ?>
    </div>
    <style>
    .public-foot{
    background-image: url(<?php echo $footer_img ?>) 
    }
    .footer-links ul li a {color:<?php echo b2_get_option('template_footer','footer_nav_text_color'); ?>}
    .site-footer{
    background-color:<?php echo b2_get_option('template_footer','footer_color'); ?>
    
    }
    .site-footer-nav{
    background-color:<?php echo b2_get_option('template_footer','footer_nav_color'); ?>
    }
    #bigTriangleColor{
    background-color:<?php echo b2_get_option('template_footer','footer_color'); ?>
    }
    
    </style>
    <footer id="onecad_new_footer" class="onecad_new_footer ">
    <div id="onecad_footer_ysc">
    <div class="wrapper footer-inner md-1">
    <div class="footer-body">
    <div class="footer-content mb-3">
    <?php dynamic_sidebar( 'sidebar-2' ); ?>
    </div>
    <div class="footer-menu text-sm">
    <i class="b2font b2-lock-2-line"></i>
    <?php
    $links_html=''; 
    $links_ysa_a1 =b2_get_option('Jitheme_footer_tab3','onecad_footer_ysb_links');
    if(is_array($links_ysa_a1)){
    foreach ($links_ysa_a1 as $k => $v) {
    if(!empty($v['onecad_footer_ysb_links_desc'])){
    $links_html.= $v['onecad_footer_ysb_links_desc'];
    }
    }
    echo $links_html;
    }
    ?>
    </div>
    
    <?php 
    $ids = array();
    $bookmarks = array();
    if($link_cats){
    foreach($link_cats as $v){
    $links = get_term_by('slug', $v, 'link_category');
    if($links){
    $ids[] = $links->term_id;
    }
    }
    }
    $ids = implode(",", $ids);
    if($ids){
    $bookmarks = get_bookmarks(array(
    'category'=>$ids,
    'orderby'=>'link_rating',
    'order'=>'DESC'
    ));
    }
    ?>
    <?php if((is_home() || is_front_page()) && !empty($link_cats) && !empty($bookmarks)){ ?>
    <div class="jitheme-footer-links text-sm <?php echo (int)$mobile_show_link === 0 ? 'mobile-hidden' : ''; ?>">
    <i class="b2font b2-price-tag-3-line"></i>
    <span class="links-item">友情链接</span>
    <?php
    foreach ($bookmarks as $bookmark) {
    echo '<a target="_blank" class="links-item" href="' . $bookmark->link_url . '">' . $bookmark->link_name . '</a>';
    }
    ?>
    </div>
    <?php } ?> 
    </div>
    <div class="footer-contact">
    <div class="ji-mb weixin">
    <?php
    $links_ysa_a1 =b2_get_option('Jitheme_footer_tab3','onecad_footer_ysb_ewm');
    if(is_array($links_ysa_a1)){
    foreach ($links_ysa_a1 as $k => $v) {
    $ewm_html='<img border="0" src="'.$v['onecad_footer_ysb_ewm_img'].'">';
    break;
    }
    }
    ?>
    <a href="javascript:" class="btn btn-arrow btn-primary text-xs">
    <span>微信咨询
    <span class="qrcode"><?php echo $ewm_html ?></span>
    <i class="b2font b2-weixin"></i>
    </span>
    </a>
    </div>
    <div class="ji-mb">
    <a href="//wpa.qq.com/msgrd?v=3&amp;uin=<?php echo b2_get_option('Jitheme_footer_main','onecad_footer_qq') ?>&amp;site=qq&amp;menu=yes" rel="external nofollow" class="btn btn-arrow btn-outline-primary text-xs" target="_blank">
    <span>在线咨询<i class="b2font b2-qq"></i>
    </span>
    </a>
    </div>
    <div class="text-muted text-xs">周一至周五 10:30-20:30</div>
    <div class="text-muted text-xs">可发邮件咨询</div>
    <div class="text-muted text-xs"><?php echo b2_get_option('Jitheme_footer_main','onecad_footer_jiandu_yx') ?></div>
    </div>
    </div>
    
    <div class="footer-copyright font-number text-xs">
    <div class="wrapper"><?php echo 'Copyright &copy; '.wp_date('Y').'<a href="'.B2_HOME_URI.'" rel="home">&nbsp;'.B2_BLOG_NAME.'</a>'; ?>. All Rights Reserved
    <?php if($beian){
    echo '<span class="b2-dot">・</span><a rel="nofollow" target="__blank" href="https://beian.miit.gov.cn">'.$beian.'</a>';
    } ?>
    <?php if($gongan){
    echo '<span class="b2-dot">・</span><a rel="nofollow" target="__blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode='.$gongan_code.'"><img src="'.B2_THEME_URI.'/Assets/fontend/images/beian-ico.png">'.b2_get_option('template_footer','footer_gongan').'</a>';
    }?>
    <?php
    echo sprintf(__('查询 %s 次,','b2'),get_num_queries());
    echo sprintf(__('耗时 %s 秒','b2'),timer_stop(0,4));
    ?>
    </div>
    </div>
    </div>
    <?php
    $celan=b2_get_option('Jitheme_footer_tab4','onecad_footer_celan_off');
    $wrapper_width = b2_get_option('template_main','wrapper_width');
    if($celan){ ?>
    <div id="jitheme_celan">
    <div class="fixed-right" style="right:16px;">
    <div class="drop">
    <a href="/vips" class="go_top item">
    <i class="b2font b2-vip-crown-2-line ">
    </i>
    </a>
    </div>
    <div class="menus">
    <span class="item ewm hide_sm">
    <i class="b2font b2-qr-code-fill ">
    </i>
    <div class="code-div">
    <div class="ewmDiv">
    <?php
    $kf_html=''; 
    $kf_html_img =b2_get_option('Jitheme_footer_tab4','Jitheme_footer_celan');
    if(is_array($kf_html_img)){
    foreach ($kf_html_img as $k => $v) {
    $kf_html .='<div class="ewm-item">
    <a href="'.$v['celan_kf_link'].'" target="_blank">
    <div class="code-wrap">
    <div class="code" style="background-image:url('.$v['celan_kf_img'].');"></div>
    </div>
    <div class="ewm-main">
    <p>'.$v['celan_kf_desc'].'</p>
    <div class="wz">'.$v['celan_kf_title'].'</div>
    </div>
    </a>
    </div>'; 
    }
    }
    echo $kf_html;
    ?>
    </div>
    </div>
    </span>
    </div>
    <div class="drop">
    <a href="http://wpa.qq.com/msgrd?v=3&uin=<?php echo b2_get_option('Jitheme_footer_main','onecad_footer_qq') ?>&site=qq&menu=yes"
    class="go_top item">
    <i class="b2font b2-customer-service-2-line1 ">
    </i>
    </a>
    </div>
    <div class="gotop">
    <a href="#" class="go_top item">
    <i class="b2font b2-rocket-2-line ">
    </i>
    </a>
    </div>
    </div>
    </div>
    <?php } ?>
    </footer>
    <?php if(!is_audit_mode()) { ?>
    <div id="mobile-footer-menu" class="mobile-footer-menu mobile-show footer-fixed" ref="footerMenu" v-show="show">
    <div class="mobile-footer-left">
    <?php echo B2\Modules\Templates\Footer::footer_menu_left(); ?>
    </div>
    <div class="mobile-footer-center">
    <button @click="postPoBox.show = true"><span><?php echo b2_get_icon('b2-add-line b2-radius'); ?></span></button>
    </div>
    <div class="mobile-footer-right">
    <?php echo B2\Modules\Templates\Footer::footer_menu_right(); ?>
    </div>
    </div>
    <?php } ?>
    <?php 
    $allow_newsflashes = b2_get_option('newsflashes_main','newsflashes_open');
    $allow_document = b2_get_option('document_main','document_open');
    $allow_circle = b2_get_option('circle_main','circle_open');
    $circle_sulg = b2_get_option('normal_custom','custom_circle_link');
    $circle_name = b2_get_option('normal_custom','custom_circle_name');
    $newsflashes_name = b2_get_option('normal_custom','custom_newsflashes_name');
    ?>
    <div id="post-po-box" class="post-po-box">
    <div :class="['post-box-content',{'show':show}]" @click="show = false">
    <div class="po-post-in b2-radius" v-cloak>
    <div class="po-post-icons">
    <div>
    <button @click.stop="go('<?php echo b2_get_custom_page_url('write'); ?>','write')">
    <span class="po-post-icon"><?php echo b2_get_icon('b2-quill-pen-line'); ?></span>
    <span class="po-post-title"><?php echo __('发布文章','b2'); ?></span>
    </button>
    </div>
    <?php if($allow_newsflashes){ ?>
    <div>
    <button @click.stop="go('<?php echo get_post_type_archive_link('newsflashes'); ?>?action=showbox','newsflashes')">
    <span class="po-post-icon"><?php echo b2_get_icon('b2-flashlight-line'); ?></span>
    <span class="po-post-title"><?php echo sprintf(__('发布%s','b2'),$newsflashes_name); ?></span>
    </button>
    </div>
    <?php } ?>
    <?php if($allow_circle){ ?>
    <div>
    <button @click.stop="go('<?php echo b2_get_custom_page_url('create-circle'); ?>','create_circle')">
    <span class="po-post-icon"><?php echo b2_get_icon('b2-donut-chart-fill'); ?></span>
    <span class="po-post-title"><?php echo sprintf(__('创建%s','b2'),$circle_name); ?></span>
    </button>
    </div>
    <div>
    <button @click.stop="go('<?php echo home_url('/').$circle_sulg; ?>','create_topic')">
    <span class="po-post-icon"><?php echo b2_get_icon('b2-chat-smile-3-line'); ?></span>
    <span class="po-post-title"><?php echo __('发表话题','b2'); ?></span>
    </button>
    </div>
    <?php } ?>
    <?php if($allow_document){ ?>
    <div class="po-verify">
    <button @click.stop="go('<?php echo b2_get_custom_page_url('requests'); ?>','request')">
    <?php echo b2_get_icon('b2-clipboard-line'); ?><span><?php echo __('提交工单','b2'); ?></span>
    </button>
    </div>
    <?php } ?>
    </div>
    <div class="po-close-button">
    <button @click.stop="show = false"><?php echo b2_get_icon('b2-close-line'); ?></button>
    </div>
    </div>
    </div>
    </div>
    <form id="wechataction" name="wechataction" action="" method="post">
    <input type="submit" value="ok" style="display:none;">
    </form>
    </div>
    <?php wp_footer(); ?>
    <!--分类切换-->
    <script src="<?php echo B2_CHILD_URI ?>/Render/Js/audio.js"></script>
    
    <script type="text/javascript" src="<?php echo B2_CHILD_URI ?>/Render/Js/web.js"></script> 
    <!--头部搜索-->
    <script type="text/javascript">
    var onecad_search = document.getElementById("onecad_search");
    var onecad_btna = document.getElementById("onecad_btna");
    var btnb = document.getElementById("onecad_btnb");
    var mobile_menu = document.getElementById("mobile-menu");
    function testDisplay()
    {
    
    if(onecad_search.style.top="-70px")
    {
    onecad_search.style.display = "block";
    onecad_search.style.top = "0px";
    onecad_search.style.transition = "all 0.3s ease-in-out 0s";
    onecad_btnb.style.display = "block";
    onecad_btna.style.display = "none";
    mobile_menu.style.display = "none";
    }
    }
    function testnone()
    {
    if(onecad_search.style.display=="block")
    {
    onecad_btna.style.display = "block";
    onecad_search.style.transition = "all 0.3s ease-in-out 0s";
    onecad_search.style.top = "-70px";
    onecad_btnb.style.display = "none";
    mobile_menu.style.display = "block";
    
    }
    }
    </script>
    <?php
    $qukuai_day=b2_get_option('Jitheme_index_tab3','qukuai_data');
    $text_date_h=b2_get_option('Jitheme_index_tab3','text_date_h');
    $qukuai_data=$qukuai_day.' '.$text_date_h
    ?>
    <script type="text/javascript"> 
    //设置定时器容器
    var countDownTimer = null ;
    //获取元素
    var day = document.getElementById("_d");
    var hour = document.getElementById("_h");
    var minute = document.getElementById("_m");
    var second = document.getElementById("_s");
    //获取截止时间的时间戳(单位毫秒)
    var str = "<?php echo $qukuai_data ?>"
    var inputTime = +new Date(str);
    //我们先调用countDown函数,可以避免在打开界面后停一秒后才开始倒计时
    if(day && hour && minute && second) {
    countDown();
    }
    //定时器 每隔一秒变化一次
    countDownTimer = setInterval(countDown, 1000);
    function countDown() {
    //获取当前时间的时间戳(单位毫秒)
    var nowTime = +new Date();
    //把剩余时间毫秒数转化为秒
    var times = (inputTime - nowTime) / 1000;
    if(times > 0){
    //计算天数
    var d = Math.floor(times/60/60/24)
    if(day){
    day.innerHTML = d
    //如果小时数小于 10,要变成 0 + 数字的形式 赋值给盒子
    day.innerHTML = d < 10 ? "0" + d : d;
    }
    //计算小时数 转化为整数
    var h = parseInt(times / 60 / 60 % 24);
    //如果小时数小于 10,要变成 0 + 数字的形式 赋值给盒子
    if(hour){
    hour.innerHTML = h < 10 ? "0" + h : h;
    }
    //计算分钟数 转化为整数
    var m = parseInt(times / 60 % 60);
    //如果分钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
    if(minute){
    minute.innerHTML = m < 10 ? "0" + m : m;
    }
    //计算描述 转化为整数
    var s = parseInt(times % 60);
    //如果秒钟数小于 10,要变成 0 + 数字的形式 赋值给盒子
    if(second){
    second.innerHTML = s < 10 ? "0" + s : s;
    }
    }else{
    // 停止定时器,清空定时器
    clearInterval(countDownTimer)
    }
    }
    </script>
    <script>
    $('.toggle-input').on('change', function() {
    $('body').toggleClass('light-version');
    });
    </script>
    </body>
    </html>

    然后插入CSS

    /*自定义CSS*/
    /*用户自定义CSS*/
    @media screen and (max-width:768px){
    .footer-inner {
    padding-top: 0px!important;
    }.footer-contact,.footer-body{
    display: none!important;
    }
    .font-number{
    margin-top: 0px!important;
    padding: 15px!important;
    line-height: 25px!important;
    }
    }
    .footer-inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    padding-top: 20px;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    }
    .footer-inner .about-widget .footer-logo {
    height: 35px!important;
    object-fit: contain;
    }
    .footer-body{
    max-width: 75%;
    }
    .footer-contact{
    padding-left: 30px;
    text-align: center!important;
    }
    .footer-contact .ji-mb{
    margin-bottom: 20px!important;
    }
    .footer-contact .ji-mb .qrcode {
    display: none;
    border: 2px dotted var(--b2color);
    }
    .footer-contact .weixin :hover .qrcode:after {
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    position: absolute;
    left: 50%;
    bottom: -10px;
    content: "";
    width: 0;
    height: 0;
    border-color: var(--b2color) transparent transparent;
    border-style: solid;
    border-width: 10px 10px 0;
    }
    .weixin :hover .qrcode {
    display: block!important;
    background-color: var(--main-bg-color);
    bottom: 55px;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    position: absolute;
    width: 140px;
    height: 140px;
    left: 50%;
    padding: 5px;
    border-radius: 2px;
    }
    .mb-1{
    margin-bottom: 20px!important;
    margin-right: 50px!important;
    }
    .footer-menu {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    }
    .jitheme-footer-links {
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    -ms-flex-wrap: wrap;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 10px;
    }
    .text-sm {
    font-size: 14px !important;
    }
    .footer-menu a {
    position: relative;
    display: block;
    margin-right: 15px;
    margin-top: 3px;
    }
    .jitheme-footer-links .links-item {
    position: relative;
    display: block;
    color:#999;
    margin-right: 15px;
    margin-top: 3px;
    }
    .btn-outline-primary {
    color: #2b76ff;
    background-color:#e5edfd;
    border-color:#e5edfd;
    }
    .btn-arrow span {
    display: inline-block;
    position: relative;
    -webkit-transition: all .2s ease-out;
    transition: all .2s ease-out;
    will-change: transform;
    padding: 5px 0px;
    }
    .btn-arrow i {
    position: absolute;
    top: 50%;
    right: 0;
    width: 1.25em;
    font-size: 1.25rem;
    opacity: 0;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    -webkit-transition: all .2s ease-out;
    transition: all .2s ease-out;
    will-change: right,opacity;
    }
    .jitheme-footer-links i,.footer-menu i{
    margin-right: 10px;
    }
    .btn-primary i{
    margin-left:10px;
    }
    .text-xs{
    font-size: 13px !important;
    color:#999;
    }
    .font-number {
    background-color: #eee;
    padding: 25px 0px;
    margin-top: 20px;
    }
    
    .btn-arrow.active span, .btn-arrow:hover span, .btn-arrow:focus span {
    -webkit-transform: translate3d(-0px,0,0);
    transform: translate3d(-0px,0,0);
    }
    .btn-arrow.active i, .btn-arrow:hover i, .btn-arrow:focus i {
    opacity: 1;
    right: -30px;
    }