Typecho实现相册.书单页面自定义
时间:2022-10-07
本文章向大家介绍Typecho实现相册.书单页面自定义,主要内容包括前言、新建分类、添加自定义字段、自定义首页文章列表样式、自定义文章内容样式、End、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
前言
这两天终于把相册、书单页完善了一下,之前一直都是用独立页面来实现,这样就不便于管理内容,相册还好,书单的话,要想添加书本信息,只能进入服务器源码文件进行添加,这就造成了很大的不便,于是趁着有时间折腾,就完善了一下,完善之后,相册和书单分别为一个分类,相册下面的每一篇文章就是一个单独的相册,书单下面的每一篇文章就是一本书,还加了好句摘录(评论而已),首页输出的文章样式也不一样。 下面是实现过程:
新建分类
主题目录下新建相册、书单分类自定义文件 创建一个category文件夹,文件夹下分别创建:photos.php、books.php(文件名为分类的缩略名) 文件中分别写入判断代码:
<?php if ($this->is('category', 'photos')): ?>//photos.php
<?php if ($this->is('category', 'books')): ?>//books.php
判断代码下面就是输出分类下的每一篇文章,可自定义样式。
添加自定义字段
找到 functions.php 文件 输入后台添加文章时的自定义字段
function themeFields($layout) {
$article_type= new Typecho_Widget_Helper_Form_Element_Radio('article_type',array('0' => _t('文章'),'photos' => _t('相册'),'books' => _t('书单')),'0',_t('文章类型'),_t("选择文章类型首页输出"));
$layout->addItem($article_type);
$photos_name = new Typecho_Widget_Helper_Form_Element_Text('photos_name', NULL, NULL, _t('相册名称'), _t('输入相册的缩略名'));
$layout->addItem($photos_name);/** 自定义每一个相册的缩略名 */
$photos_excerpt = new Typecho_Widget_Helper_Form_Element_Text('photos_excerpt', NULL, NULL, _t('相册介绍'), _t('输入相册的介绍'));
$layout->addItem($photos_excerpt);/** 输出相册介绍 */
$books_author = new Typecho_Widget_Helper_Form_Element_Text('books_author', NULL, NULL, _t('书的作者'), _t('输入书的作者'));
$layout->addItem($books_author);/** 输出书的作者 */
$books_time = new Typecho_Widget_Helper_Form_Element_Text('books_time', NULL, NULL, _t('书的出版时间'), _t('输入书的出版时间'));
$layout->addItem($books_time);/** 输出书的出版时间 */
$books_excerpt = new Typecho_Widget_Helper_Form_Element_Text('books_excerpt', NULL, NULL, _t('书的介绍'), _t('输入书的介绍'));
$layout->addItem($books_excerpt);/** 输出书的介绍 */
$books_reading = new Typecho_Widget_Helper_Form_Element_Text('books_reading', NULL, NULL, _t('阅读进度'), _t('阅读进度'));
$layout->addItem($books_reading);/** 输出阅读进度 */
}
通过以上代码可整理出各个自定义字段为:
article_type//文章类型自定义
photos_name//文章缩略名自定义
books_time//书的出版时间
books_excerpt//书的介绍
books_reading//阅读进度
这些自定义字段将会在后台文章编辑页面展示:
在你所需要展示的地方调用即可展示,调用代码为:
<?php $this->fields->字段缩略名(); ?>
自定义首页文章列表样式
接下来就可以通过上面添加好的自定义字段进行自定义首页文章样式 找到index.php 通过以下代码判断而进行输出相应的样式:
<?php while($this->next()): ?>
<?php if($this->fields->article_type == "photos") { ?><!-- 相册样式 -->
这里写你自定义相册的样式
<?php } elseif ($this->fields->article_type == "books") { ?><!-- 书单样式 -->
这里写你自定义书单的样式
<?php } else {?><!-- 默认样式 -->
这里写你默认文章的样式
<?php }?>
<?php endwhile; ?>
自定义文章内容样式
最后就可以自定义文章内容样式了 找到post.php 通过以下代码判断而进行输出相应的样式:
<?php if($this->category == "photos"): ?> <!-- 相册样式 -->
这里写你自定义相册内容的样式
<?php elseif($this->category == "books"): ?><!-- 书单样式 -->
这里写你自定义书单内容的样式
<?php else: ?><!-- 默认样式 -->
这里写你默认文章内容的样式
<?php endif; ?>
End
折腾完毕~
- 有趣的应用 | 使用RNN预测股票价格系列一
- 通过深度学习实现安全帽佩戴的检测
- python及numpy,pandas易混淆的点
- 深度学习中的损失函数总结以及Center Loss函数笔记
- TF使用例子-LSTM实现序列标注
- 图像学习-验证码识别
- ResNet原理及其在TF-Slim中的实现
- 理工男的文科梦 —— LSTM深度学习写春联
- keras学习笔记-黑白照片自动着色的神经网络-Alpha版
- keras学习笔记-黑白照片自动着色的神经网络-Beta版
- Python 设计模式初探
- 请注意,我们要谈谈神经网络的注意机制和使用方法
- TensorFlow官方教程翻译:导入数据
- TF使用例子-情感分类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
- Ajax+PHP实现的模拟进度条功能示例
- python实例化对象的具体方法
- PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
- YII框架关联查询操作示例
- Keras之fit_generator与train_on_batch用法
- django美化后台django-suit的安装配置操作
- python读取excel进行遍历/xlrd模块操作
- 浅谈Keras的Sequential与PyTorch的Sequential的区别
- python 制作python包,封装成可用模块教程
- 使用python脚本自动生成K8S-YAML的方法示例
- Python虚拟环境库virtualenvwrapper安装及使用
- tp5框架内使用tp3.2分页的方法分析
- YII框架常用技巧总结
- PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】