typecho 为主题开发者提供了themeConfig和themeFields两个函数,分别控制主题外观和文章页自定义字段。以下整理了各类自定义字段的使用方式。

主题的外观设置中增加自定义字段

在主题目录中的 function.php,添加以下代码:

function themeConfig($form) { // themeConfig 函数
$logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, NULL, _t('LOGO 图片地址'), _t('留空则直接显示站点文字标题'));
$form->addInput($logoUrl); }

在模板中判断是否存在并取值:

<?php if($this->options->logoUrl){ ?><img src="<?php $this->options->logoUrl(); ?>"><?php }  ?>

发布新文章中增加自定义字段

在主题目录中的 function.php,添加以下代码:

function themeFields($layout) { // themeFields 函数
$thumbnail = new Typecho_Widget_Helper_Form_Element_Text('thumbnail', NULL, NULL, _t('缩略图'), _t('输入图片地址'));
$layout->addItem($thumbnail); }

在模板中使用:

<?php if($this->themeFields->thumbnail){ ?><img src="<?php $this->fields->thumbnail(); ?>"><?php }  ?>

常用的一些自定义字段的填写方法

定义 themeConfig 函数,添加自定义字段和模板用法同上例子

//单行文本
new Typecho_Widget_Helper_Form_Element_Text
//多行文本
new Typecho_Widget_Helper_Form_Element_Textaera
//单选框
$cdnMode = new Typecho_Widget_Helper_Form_Element_Radio('cdnMode',
array('0' => _t('本地js'),'1' => _t('CDN加速')),'0', _t('选择CDN加载js'));
$form->addInput($cdnMode); //注意array数组是单选项,数组后面的 0 是默认选项

//下拉选项
$styleType = new Typecho_Widget_Helper_Form_Element_Select('styleType', array('circle' => _t('圆形'),'squared' => _t('方形')), 'circle', _t('自定义文章列表样式'));
$form->addInput($styleType);

相关内容