闲着没事在学嵌套Typecho主题,在嵌套的时候发现了自定义字段,以前一直没注意文章编辑页面的这个功能,然后顺手就点进了帮助文档,感觉打开了新世界。自定义字段功能有非常多的妙用,合理利用可以让主题如虎添翼,通过自定义字段可以实现自定义文章缩略图、幻灯片调用等图片调用功能以及自定义文章keywords和description等等,方法很多就看你怎么用,并且调用非常简单。看看官方文档给出的代码。
自定义字段代码
调用字段
$field = $this->fields->fieldName;
字段输出
$this->fields->fieldName();
判断字段
if(isset($this->fields->fieldName)){
echo '字段存在,值为:'.$this->fields->fieldName;
}else{
echo '字段不存在';
}
fieldName
替换为你自定义的字段名称
选择字符
或者数字
或者小数
不能为中文,在字段值中填入内容,如图片调用就在字段值中填入图片链接。
实操1
如字段名称为sss
字段值为Hello
在主题文件中插入如下代码直接输出Hello
。
<?php $field = $this->fields->sss(); ?>
实操发现可输出,如果没有在自定义字段中添加sss
字段时前端会报错。所以在文件中插入了上述代码就必须在文章中添加该自定义字段。
实操2
在主题functions.php
文件中插入以下代码即可将代码中logoUrl
字段名固定在文章/页面的撰写界面以后只需要填入字段值即可
//在文章/页面撰写页面自定义字段中固定该自定义字段
function themeFields($layout)
{
$logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, NULL, _t('站点LOGO地址'), _t('在这里填入一个图片URL地址,需要带上http(s)://'));
$layout->addItem($logoUrl);
}
然后在主题文件中插入以下代码调用
//判断:如果有该字段值就直接输出,反之输出默认值/assets/img/welcome.png
<?php if (!empty(thePrev($this)['logoUrl'])) {
echo thePrev($this)['logoUrl'];
} else {
echo '/assets/img/welcome.png';
} ?>
还有其它很多妙用,如将字段名定义为keywords
和description
单独定义该文章的关键词和描述用以SEO优化等。
参考:官方文档