MENU

解决Typecho插件的配置信息没有找到

• April 11, 2020 • 教程

避免踩坑

入坑Typecho已经一个多月了,在这期间Typecho的插件也开发了两个(其实我现在正在开发第三个,就不告诉你是个采集插件),然后大大小小的坑也踩了不少,其实最深的坑还是启用插件时提示“插件的配置信息没有找到”,这个具体原因就是因为首次启用插件时,在config()里面获取配置信息,这当然是获取不到的,我们复现一个这个错误。

先写插件

在写一个插件肯定是没那个精力了,我们就稍微改一下官方的HelloWorld插件吧,首先我们先启用报错,在Plugins.php最上面加入下面的代码,这样的话我们就可以看到错误信息了,不然就是Server Error

define('__TYPECHO_DEBUG__', true);

然后我们找到config这个函数,复现一下具体错误,我们加一个获取插件配置的代码,然后保存。

$setting = $options = Typecho_Widget::widget('Widget_Options')->plugin('HelloWorld');
echo "<script>alert(\"{$setting->word}\")</script>";

然后我们启用一下插件,看看会不会报错。
1.png
果不其然,真的报错了,有的时候在config()函数里面获取配置信息是为了更好的显示插件的某些配置,所以说这个对我们来说真的很重要,经过我多方摸索,最后找到了解决办法。

如何解决

其实解决方法也是灰常简单的,只需要加一个捕捉异常,就可以跳过这个坑(傻傻的我为什么早没有想到呢),我们来修改一下代码,我们加一个try catch,保存之后在重新启用插件。

try {
    $setting = $options = Typecho_Widget::widget('Widget_Options')->plugin('HelloWorld');
    echo "<script>alert(\"{$setting->word}\")</script>";
} catch (Exception $e) {
    echo "<script>alert(\"获取配置失败\")</script>";
}

重新启用插件之后果然没有报错,所以说这个方法是可行的,其他的思路我暂时没有,如果你们有好的方法可以在下面评论。

断更说明

随着新型冠状病毒的有效控制我们也迎来了开学,所以说日更的小站也被迫成了周更的小站,尽量保证不拖更吧,同时我正在开发我的第一个付费插件(采集文章的),所以说时间就更紧迫了,文章这个东西不原创就没有发的意义,最近脑子空空,也不知道发什么文章了,有想法的下方评论,废话不多说。

Last Modified: May 26, 2020
Archives 下载海报
QR Code for this page
Tipping QR Code
Leave a Comment

2 Comments
  1. XiaoFans

    我添加之后报错的确不会了,但是插件会失效

  2. XiaoFans

    博主,能详细说一下吗?给出的这段代码要放在哪里?我放在插件的plugin.php中会报错