TYPECHO WIKI
每一个作品都值得被记录

Typecho $this->category 和 $this->categories 的区别

Typecho维基君Typecho教程 • 1128次浏览 • 发布 2022-04-17 • 更新 2022-04-17

前言

  • 做主题的时候,经常用到 $this->category$this->category()$this->categories
  • 在文章详情页,$this->category 输出最靠前的一个直属分类,$this->categories 输出所有分类
  • 在 archive 页面,也就是类似 /category/typecho 的页面,$this->categories 的输出和想的不太一样

构造一个场景

  • 假设有以下三个分类

    • 分类 1:slug 为 typecho
    • 分类 2:slug 为 php
    • 分类 3:slug 为 websites,且是分类 1 、分类 2 的父分类
  • 分类 3 的 mid 和 order 最小
  • 假设有一篇文章,勾选的分类为 分类 1、分类 2、分类 3,也就是三个分类全勾了

文章详情页的输出结果

  • var_export($this->category);
'websites'
  • var_export($this->categories);
array ( 
    0 => array ( 
        'mid' => '6', 
        'name' => 'TYPECHO', 
        'slug' => 'typecho', 
        'type' => 'category', 
        'description' => '', 
        'count' => '4', 
        'order' => '1', 
        'parent' => '1', 
        'cid' => '50', 
        'directory' => array ( 
            0 => 'websites', 
            1 => 'typecho', 
        ), 
        'permalink' => 'https://paoti.club/category/typecho/', 
        'feedUrl' => 'https://paoti.club/feed/category/typecho/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/typecho/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/typecho/', 
    ), 
    1 => array ( 
        'mid' => '1', 
        'name' => '网站&服务器', 
        'slug' => 'websites', 
        'type' => 'category', 
        'description' => '', 
        'count' => '5', 
        'order' => '1', 
        'parent' => '0', 
        'cid' => '50', 
        'directory' => array ( 
            0 => 'websites', 
        ), 
        'permalink' => 'https://paoti.club/category/websites/', 
        'feedUrl' => 'https://paoti.club/feed/category/websites/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/websites/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/websites/', 
    ), 
    2 => array ( 
        'mid' => '26', 
        'name' => 'PHP', 
        'slug' => 'php', 
        'type' => 'category', 
        'description' => '', 
        'count' => '3', 
        'order' => '4', 
        'parent' => '1', 
        'cid' => '50', 
        'directory' => array ( 
            0 => 'websites', 
            1 => 'php', 
        ), 
        'permalink' => 'https://paoti.club/category/php/', 
        'feedUrl' => 'https://paoti.club/feed/category/php/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/php/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/php/', 
    ), 
)

/categort/typecho 页面的输出结果

输出的是当前分类页面下文章关联的分类,而不是当前分类

  • var_export($this->category);
'websites'
  • var_export($this->categories);
array ( 
    0 => array ( 
        'mid' => '1', 
        'name' => '网站&服务器', 
        'slug' => 'websites', 
        'type' => 'category', 
        'description' => '', 
        'count' => '5', 
        'order' => '1', 
        'parent' => '0', 
        'cid' => '46', 
        'directory' => array ( 
            0 => 'websites', 
        ), 
       'permalink' => 'https://paoti.club/category/websites/', 
        'feedUrl' => 'https://paoti.club/feed/category/websites/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/websites/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/websites/', 
    ), 
    1 => array ( 
        'mid' => '6', 
        'name' => 'TYPECHO', 
        'slug' => 'typecho', 
        'type' => 'category', 
        'description' => '', 
        'count' => '4', 
        'order' => '1', 
        'parent' => '1', 
        'cid' => '46', 
        'directory' => array ( 
            0 => 'websites', 
            1 => 'typecho', 
        ), 
        'permalink' => 'https://paoti.club/category/typecho/', 
        'feedUrl' => 'https://paoti.club/feed/category/typecho/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/typecho/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/typecho/', 
    ), 
    2 => array ( 
        'mid' => '30', 
        'name' => '云产品', 
        'slug' => 'cloud', 
        'type' => 'category', 
        'description' => '', 
        'count' => '1', 
        'order' => '3', 
        'parent' => '1', 
        'cid' => '46', 
        'directory' => array ( 
            0 => 'websites', 
            1 => 'cloud', 
        ), 
        'permalink' => 'https://paoti.club/category/cloud/', 
        'feedUrl' => 'https://paoti.club/feed/category/cloud/', 
        'feedRssUrl' => 'https://paoti.club/feed/rss/category/cloud/', 
        'feedAtomUrl' => 'https://paoti.club/feed/atom/category/cloud/',
    ), 
)

转载:https://paoti.club/archives/how-to-echo-typecho-category.html

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,Typecho.Wiki所有文章均包含本声明。
厂商投放

【腾讯云】🎉五一云上盛惠!云服务器99元/月续费同价!

腾讯云五一劳动节海量产品 · 轻松上云!云服务器首年1.8折起,买1年送3个月!超值优惠,性能稳定,让您的云端之旅更加畅享。快来腾讯云选购吧!

广告
添加新评论 »