Typecho文章自定义字段

文章的自定义字段将显示在文章编辑界面的编辑框下。

用户可以使用定义好的选项设置每篇文章的喜好,在输出文章时调用用户的设置,实现一些个性化的功能。

文章自定义字段需要在主题目录下的 functions.php 文件中的 themeFields 函数中定义。


input 输入框

下面定义一个 input 输入框:

function themeFields($layout) {
    $image = new Typecho_Widget_Helper_Form_Element_Text('image', null, null, _t('文章头图'), _t('文章头图会显示在文章的顶部。'));
    $layout->addItem($image);  //  注册
}

Typecho_Widget_Helper_Form_Element_Text 的第一个参数是字段名。第二个参数目前暂时未知。第三个参数是默认值。第四个参数是提示信息,会显示在输入框关联的 label 标签中。第五个参数是更详细的提示信息,会显示在输入框下方。

在输出文章的时候可以通过 $this->fields->image() 输出自定义字段的内容,其中的 image 就是字段名称。如果要判断字段是否有内容可以直接用 if 来判断 $this->fields->image ,如果有内容就会返回 true ,否则就返回 false 。


select 下拉选择

下面定义一个 select 下拉选择:

function themeFields($layout) {
    $articleCopyright = new Typecho_Widget_Helper_Form_Element_Select('articleCopyright', array(
        'show' => '显示',
        'hide' => '不显示'
    ), 'show', _t('显示原创声明'), _t('开启后会在本篇文章底部显示版权声明。'));
    $layout->addItem($articleCopyright);  //  注册  
}

注意!只要是文章的自定义字段都需要写在 themeFields 函数内,多个字段也只需要写在一个 themeFields 函数内。

Typecho_Widget_Helper_Form_Element_Select 的第一个参数是字段名称。第二个参数是下拉选择的内容,需要传入一个数组。第三个参数是默认值,默认值的类型为字符串,需要传入一个数组的键名。第四个参数是 label 标签关联的提示信息。第五个参数是更详细的提示信息。

在输出文章的时候可以用 if 来判断 $this->fields->articleCopyright 的值,其中 articleCopyright 就是字段名。下面判断 $this->fields->articleCopyright 的值:

if ($this->fields->articleCopyright == 'show') {
    //  如果是选中状态就返回 true
}

下面是 input 输入框和 select 下拉选择 在文章编辑页的效果:

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏
分享
评论 抢沙发

请登录后发表评论