请教:主题开关无法保存

模板开发以及发布测试
回复
头像
hczcy
帖子: 17
注册时间: 2016年 10月 19日 15:01
来自: https://www.mrhe.net
联系:

请教:主题开关无法保存

帖子 hczcy »

如图,在主题设置界面,无论是打开还是关闭,都不起作用,请教~
cd7f7c646a7238caf750dd1e4472a840.png
cd7f7c646a7238caf750dd1e4472a840.png (141.21 KiB) 查看 267 次
Lopwon
帖子: 186
注册时间: 2016年 11月 14日 11:19

Re: 请教:主题开关无法保存

帖子 Lopwon »

一种可能是:在主题处于启用状态时,对文件 functions.php 做了增减函数的操作。
头像
hczcy
帖子: 17
注册时间: 2016年 10月 19日 15:01
来自: https://www.mrhe.net
联系:

Re: 请教:主题开关无法保存

帖子 hczcy »

Lopwon 写了: 2024年 10月 1日 10:56 一种可能是:在主题处于启用状态时,对文件 functions.php 做了增减函数的操作。
能详细说说吗?该怎么处理
Lopwon
帖子: 186
注册时间: 2016年 11月 14日 11:19

Re: 请教:主题开关无法保存

帖子 Lopwon »

假设 functions.php 的 themeConfig() 为:

代码: 全选

function themeConfig($form) {

    $logo = new Typecho_Widget_Helper_Form_Element_Text(
        'logo', NULL, NULL,
        _t('')
    );
    $form->addInput($logo);
	
}
此时,数据库存储的序列化字符串是:

代码: 全选

a:1:{s:4:"logo";N;}
当主题处于(启用)状态时,如果对 themeConfig() 做了增减 $form 等的操作,如:

代码: 全选

function themeConfig($form) {

    $logo = new Typecho_Widget_Helper_Form_Element_Text(
         'logo', NULL, NULL,
        _t('')
    );
    $form->addInput($logo);

    // 新增的
    $lopwon = new Typecho_Widget_Helper_Form_Element_Text(
        'lopwon', NULL, NULL,
        _t('')
    );
    $form->addInput($lopwon);
	
}
此时,主题设置里虽然也显示表单,但是输入内容保存设置后,数据库并没有新增与 lopwon 相关的内容,而需要停用主题后再次启用,才会存储为

代码: 全选

a:2:{s:4:"logo";N;s:6:"lopwon";N;}
回复