分类 PHP 下的文章

Typecho Littlehands 主题

一款基于Typecho原生主题修改的主题

Demo: /

GitHub 地址 | GitHub 下载

功能

  • 代码高亮,支持多种语言
  • 使用QPlayer播放器(目前仅支持播放网易云音乐的歌单)
  • 使用PJAX加载网页
  • 在页脚引用一言
  • 自定义页眉、页脚
  • 邮箱头像源设置
  • 评论表情
  • 友链页面
  • 自定义短代码
  • [TOC]生成目录
  • 图片灯箱
  • 图片懒加载
  • 使用Parsedown解析
  • 百度统计

预览

PC
Phone

更新

2019.01.25 v1.0.2

  • 更新 QPlayer
  • 修复 检测更新

2018.06.24 v1.0.1

阅读全文

Typecho ShortCode 短代码插件

[TOC]

Typecho ShortCode 是一款用于自定义短代码的Typecho插件
GitHub 地址 | GitHub 下载

注意:
由于Typecho目前自带的MarkDown解析不支持许多HTML标签(比如 voide audio 标签等等),可能影响你使用ShortCode短代码
建议使用其他的MarkDown解析,例如:Parsedown插件)等等

......

阅读全文

跟插件原理一样,我这里使用Parsedown解析~
水了一篇~

下载地址:
插件版
Parsedown.php

在主题function.php文件下添加:

/**
 * 主题插件
 *
 * @package theme_plugin
 */
class theme_plugin{
    public static function markdown($text){
        require_once 'Parsedown.php'; //Parsedown.php文件路径
        return Parsedown::instance()->setBreaksEnabled(true)->text($text);
    }
}

在themeInit函数下添加:

Typecho_Plugin::factory('Widget_Abstract_Contents')->markdown = ['theme_plugin', 'markdown'];
Typecho_Plugin::factory('Widget_Abstract_Comments')->markdown = ['theme_plugin', 'markdown'];

阅读全文

一般一个插件接口被多次绑定,插件的接口参数值不会因为上一个插件的返回而改变,这样上一个插件的返回值就没有作用了

我查看内核发现,回调函数传递参数时,除插件的接口参数外,后面还会多出一个参数,此参数是上一个插件返回的值

这样我们在写插件时加个判断就不会导致上一个插件的返回值失效

一个插件接口所绑定的第一个插件或者上一个插件没有返回值,其多出的参数的值均为false

参考:
Typecho插件接口及功能列表

阅读全文

我尝试将PHP切换到7.2.10版本,函数 create_function 发出警告
Deprecated: Function create_function() is deprecated in ...

PHP手册中说到,从PHP7.2.0开始此函数将被弃用

我在编写中使用到了phpQuery.php (这个好像很久没有人维护了)其中12次使用了create_function() 函数

感觉一个一个改太麻烦,又怕改错,可以用最简单粗暴的方法——在前面打上@
或者自己写一个函数替换掉 create_function() 我是这样写的:

/**
 * 创建一个匿名函数
 * 使用my_create_function 替代 create_function 解决 7.20 以上报错问题
 * @param string
 * @param string
 * @return function
 */
function my_create_function($param,$function){
    return eval("return function({$param}){{$function}};");
}

参考:
PHP RFC: 7.2 弃用功能
PHP 7.2 中弃用的功能

阅读全文