Typecho之框架结构与开发,Typecho创建自定义模板,分类模板,公共方法添加,Typecho判断当前页面,获取某单一分类下的文章,获取文章分类和标签,新增字段增加相应查询范围...

安装 定制开发typecho

admin/                后台路径
    css/
    img/
    js/
    index.php                   后台首页
    ...
install/              安装数据库文件
usr/                  用户站点数据
    plugins/          插件引入目录
        HelloWorld/   插件:以Plugin.php文件被加载
    themes/
        default/      主题:以index.php文件加载
                        自定义首页模板加载
                            当前主题下新建php文件,以下注释被后台识别 首页和独立页面的关键字分别为index & custom
                            /**
                             * 自定义模板说明
                             * @package index
                             */
    uploads/                上传文件资源 
                                格式2019/09/09/xx.jpg
var/                  核心文件类库引入等
index.php             入口文件
install.php           安装初始化文件
config.inc.php        生成配置文件 引入支持文件并定义数据库
//*引入当前主题的主要头部,底部,侧边等模块写法,输出数据配置写法,分别引入类内方法 例/var/Widget/class.php */
    $this->need('header.php');
    $this->options->siteUrl();
    $this->content();
    $this->date('c');
    _e('搜索');
    $this->is('index');
    $this->widget('Widget_Contents_Page_List')->to($pages);
    while($pages->next()):
        $pages->title();
    endwhile;
    $this->comments()->to($comments);
    $comments->listComments();
    $this->respondId();

//* 当前主题的function.php的方法调用写法是新建function引用对象参数,模板内直接调用 */
    <?php echo funcFile_write($this); ?>
    function funcFile_write($active){
        echo $active->content;
    }

Typecho创建自定义模板

  • 当前主题目录下创建xxx.php文件作引用模板, php文件头部需注入被引用说明
/**
* 你的模板中文名称
* @package index
*/
  • 关键字 index 代表 后台-阅读-首页模板
  • 关键字 custom 代表 后台-自定义页面-独立页面模板

Typecho创建分类模板

方法一:

  • 当前主题目录下 创建目录 category
  • 创建 分类名称.php 模板文件即可,访问分类自动访问

方法二

  • 模板文件里面代码判断 进行你的操作
<?php if ($this->is('category', 'default')): ?>
    //默认分类模板
<?php endif; ?>
<?php if ($this->is('category', 'category2')): ?>
    //分类2模板
<?php endif; ?>

Typecho创建分类模板

  • 当前主题functions.php文件 添加一个函数(示例jobs 分类下的文章列表显示10条)
function themeInit($archive) 
{
    if ($archive->is('category', 'jobs')) 
    {
        $archive->parameter->pageSize = 10; // 自定义条数
    }
}

引用感谢http://www.bokebu.com/typechochuang-jian-zi-ding-yi-mo-ban.html

Typecho判断当前页面

if($this->is('post')){
    //如果是文章页 doing...
}
if($this->is('page','about')){
    //如果在某一页 doing...
    //第一个参数    第二个参数
    //index                        判断当前页是否为主页
    //archive                      判断当前页是否为文章归档页,比主页,分类文章页,标签文章页,日期归档文章页   
    //category    cate name        判断当前页是否为分类文章页 , 判断具体分类
    //tag         slug name        判断当前页是否为标签文章页 ,判断具体标签
    //date        year/month       判断当前页是否为标签文章页 ,判断是否为按年,按月还是按日归档
    //single      slug name        判断当前页是否为内容页 ,如文章页,独立页面,附件显示页
    //post        post id          判断当前页是否为内容页 ,判断具体是哪篇文章
    //page        page name        判断当前页是否为独立页面 ,判断具体独立页面
    //attachment  attach id        判断当前页是否为附件 ,附件id判断具体是哪个附件
}

获取某单一分类下的文章

    $this->widget('Widget_Archive@index', 'pageSize=6&type=category', 'mid=3')->parse('<li><a href="{permalink}">{title}</a></li>'); 

获取文章分类和标签

//*参数:标签或分类互相的间隔符,超链接&纯文字形式,文章无标签的提示信息*/
$this->category(',', true, 'none');
$this->category();

$this->tags(',', true, 'none');
$this->tags();
//*给每个标签套上div或者span*/
$this->tags('</div><div>', true, 'none');
in_array('web', $this->tags)

新增功能字段,相应查询删除等操作范围修改,如文章表contents

write-post.php插入表单对应字段(可选)

    WidgetContentsPostEdit 编辑添加 writePost()
    WidgetAbstractContents 构建添加 insert() 编辑添加update() 查询添加select()

https://segmentfault.com/q/1010000007924673

标签: PHP, 分享

WeChatPay

微信打赏

Alipay

支付宝打赏

如果对你也有帮助,随便来个五毛的吧,一切随缘看心情...

空空如也