如何给指定内容类型添加自定义字段?

插件开发及发布

版主: woniou

mei
帖子: 10
注册时间: 2022年 4月 8日 01:20

如何给指定内容类型添加自定义字段?

帖子 mei »

在functions.php中添加自定义字段:

代码: 全选

function themeFields($layout) {
    $title = new Typecho_Widget_Helper_Form_Element_Text('title', 
    	NULL, NULL, _t('测试字段'), _t('这是测试字段'));
    $layout->addItem($title);
}
这时,「文章」编辑页面、「独立页」编辑页面都会出现我们自定义的字段“测试字段”,但是这个“测试字段”我只想让他出现在所有的「独立页」编辑页面中,请问如何判断一下才能实现呢?
上次由 mei 在 2022年 4月 9日 11:15,总共编辑 5 次。
Lopwon
帖子: 173
注册时间: 2016年 11月 14日 11:19

Re: 如何给指定内容类型添加自定义字段?

帖子 Lopwon »

在page.php里调用,其他页面不调用。
mei
帖子: 10
注册时间: 2022年 4月 8日 01:20

Re: 如何给指定内容类型添加自定义字段?

帖子 mei »

不是前台页面,我是说后台的页面
Lopwon
帖子: 173
注册时间: 2016年 11月 14日 11:19

Re: 如何给指定内容类型添加自定义字段?

帖子 Lopwon »

logoUrl已经固定在文章编辑页面里,可以在functions.php里删除上面的代码,把下面这段添加到想要呈现的主题页面里,使用时,在文章编辑页面(如:你的需求——独立页面)添加自定义字段,字段名称为logoUrl,值为图片链接。

代码: 全选

<?php if (isset($this->fields->logoUrl)): ?><?php $this->fields->logoUrl(); ?><?php endif; ?>
mei
帖子: 10
注册时间: 2022年 4月 8日 01:20

Re: 如何给指定内容类型添加自定义字段?

帖子 mei »

@Lopwon 你好,可能我没有描述清楚,我又重新编辑了一下帖子
Lopwon
帖子: 173
注册时间: 2016年 11月 14日 11:19

Re: 如何给指定内容类型添加自定义字段?

帖子 Lopwon »

代码: 全选

function themeFields($layout) {

if (preg_match("/write-post.php/", $_SERVER['REQUEST_URI'])) {

    $title = new Typecho_Widget_Helper_Form_Element_Text('title', 
    	NULL, NULL, _t('测试字段'), _t('这是测试字段'));
    $layout->addItem($title);
    
}

}
Lopwon
帖子: 173
注册时间: 2016年 11月 14日 11:19

Re: 如何给指定内容类型添加自定义字段?

帖子 Lopwon »

忘了你是要独立页面显示,把write-post.php替换为write-page.php
mei
帖子: 10
注册时间: 2022年 4月 8日 01:20

Re: 如何给指定内容类型添加自定义字段?

帖子 mei »

@Lopwon 谢谢大佬,这个逻辑非常棒!
mei
帖子: 10
注册时间: 2022年 4月 8日 01:20

Re: 如何给指定内容类型添加自定义字段?

帖子 mei »

@Lopwon 你好,既然 preg_match 可以匹配到 write-post.php 或 write-page.php,那如果我在「分类」创建了博客、新闻两个分类,现在我想匹配到博客这个分类,就是说我想把这个自定义字段显示在所有是「博客」分类的文章编辑页下面,应该如何判断呢?
例如可能是这样写:if (preg_match( '/write-post.php/category=blog', $_SERVER['REQUEST_URI'] )) { ... }
但是这样写很显然不对的
Lopwon
帖子: 173
注册时间: 2016年 11月 14日 11:19

Re: 如何给指定内容类型添加自定义字段?

帖子 Lopwon »

没试过,以下这个方式也许可以满足你的需求:博客输出分类默认为archive.php,同时对搜索页,标签页起作用,可以在主题文件夹内建立文件夹category,在其内建立各种“filename.php”不同分类效果的模板,其中每个filename对应分类缩略名,就会输出不同的分类页面。

比如目前我有三个分类:索引、节气、有声。这三个分类分别输出不同版式,索引点击图片后进入文章页,节气点击图片用弹窗展示,有声点击可以播放音频。演示http://www.lopwon.com页脚分类。
回复