当前位置:Gxlcms > PHP教程 > 学习typecho主题开发笔记01,typecho主题笔记01_PHP教程

学习typecho主题开发笔记01,typecho主题笔记01_PHP教程

时间:2021-07-01 10:21:17 帮助过:99人阅读

学习typecho主题开发笔记01,typecho主题笔记01


博客被加速乐坑掉,于是有了学习typecho主题开发的想法,感谢这个机会!


首先是去看主题文件夹下面的'index.php',一个博客的文章页面一般包括下面几个基本元素

  • 作者
  • 发表时间
  • 文章分类 1 php 2 /** 3 * 这是 Typecho 0.9 系统的一套默认皮肤 4 * 5 * @package Typecho Replica Theme 6 * @author Typecho Team 7 * @version 1.2 8 * @link http://typecho.org 9 */ 10 11 if (!defined('__TYPECHO_ROOT_DIR__')) exit; 12 $this->need('header.php'); 13 ?> 14 15 class="col-mb-12 col-8" id="main" role="main"> 16 while($this->next()): ?> 17 class="post" itemscope itemtype="http://schema.org/BlogPosting"> 18

    class="post-title" itemprop="name headline">$this->permalink() ?>">$this->title() ?>

    19
      class="post-meta"> 20 21
    • <time datetime="$this->date('c'); ?>" itemprop="datePublished">$this->date('F j, Y'); ?>time>
    • 22
    • $this->category(','); ?>
    • 23
    • $this->permalink() ?>#comments">$this->commentsNum('评论', '1 条评论', '%d 条评论'); ?>
    • 24
    25 class="post-content" itemprop="articleBody"> 26 $this->content('- 阅读剩余部分 -'); ?> 27 28 29 endwhile; ?> 30 31 $this->pageNav('« 前一页', '后一页 »'); ?> 32 33 34 $this->need('sidebar.php'); ?> 35 $this->need('footer.php'); ?

下面是这是index.php的源代码:

  1. <span> 1</span> <!--?<span-->php
  2. <span> 2</span> <span>/*</span><span>*
  3. </span><span> 3</span> <span> * 这是 Typecho 0.9 系统的一套默认皮肤
  4. </span><span> 4</span> <span> *
  5. </span><span> 5</span> <span> * @package Typecho Replica Theme
  6. </span><span> 6</span> <span> * @author Typecho Team
  7. </span><span> 7</span> <span> * @version 1.2
  8. </span><span> 8</span> <span> * @link http://typecho.org
  9. </span><span> 9</span> <span>*/</span>
  10. <span>10</span>
  11. <span>11</span> <span>if</span> (!<span>defined</span>('__TYPECHO_ROOT_DIR__')) <span>exit</span><span>;
  12. </span><span>12</span> <span>$this</span>->need('header.php'<span>);
  13. </span><span>13</span> ?>
  14. <span>14</span>
  15. <span>15</span> class="col-mb-12 col-8" id="main" role="main">
  16. <span>16</span> <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
  17. <span>17</span> class="post" itemscope itemtype="http://schema.org/BlogPosting">
  18. <span>18</span> <h2 <span="">class="post-title" itemprop="name headline">$this->permalink() ?>"><!--?php <span-->$this->title() ?></h2>
  19. <span>19</span> <ul <span="">class="post-meta">
  20. <span>20</span> <li itemprop="author" itemscope="" itemtype="http://schema.org/Person"><!--?php _e('作者: '); ?-->$this->author->permalink(); ?>" rel="author"><!--?php <span-->$this->author(); ?></li>
  21. <span>21</span> <li><!--?php _e('时间: '); ?--><<span>time</span> datetime="<!--?php <span-->$this->date('c'); ?>" itemprop="datePublished"><!--?php <span-->$this-><span>date</span>('F j, Y'); ?><!--<span-->time></li>
  22. <span>22</span> <li><!--?php _e('分类: '); ?--><!--?php <span-->$this->category(','); ?></li>
  23. <span>23</span> <li itemprop="interactionCount">$this->permalink() ?>#comments"><!--?php <span-->$this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></li>
  24. <span>24</span> </ul>
  25. <span>25</span> class="post-content" itemprop="articleBody">
  26. <span>26</span> <!--?php <span-->$this->content('- 阅读剩余部分 -'); ?>
  27. <span>27</span>
  28. <span>28</span>
  29. <span>29</span> <!--?php <span-->endwhile; ?>
  30. <span>30</span>
  31. <span>31</span> <!--?php <span-->$this->pageNav('« 前一页', '后一页 »'); ?>
  32. <span>32</span> <!-- <span>end</span> <span>#</span><span>main-->
  33. <span>33</span>
  34. <span>34</span> <!--?php <span-->$this->need('sidebar.php'); ?>
  35. <span>35</span> <!--?php <span-->$this->need('footer.php'); ?>
  1. <p>2-9行是注释,里面包含了主题的各种信息,每行以*开头。</p>

@package 表示主题的名称

@author 表示作者信息

@version 表示主题当前的版本

@link 表示作者的网站链接

include()方法用来包含要用到的php文件,具体用法查阅PHP官方手册include()方法

在12,34,35行都能看到$this->need(),它在typecho里面就和include()的作用是一样的

  1. <span>$this</span>->need('header.php'<span>);
  2. </span><!--?php <span-->$this->need('sidebar.php'); ?>
  3. <!--?php <span-->$this->need('footer.php'); ?>

所以上面的代码就是调用header.php,sidebar.php,footer.php。具体这三个php文件是什么作用的,很简单,顾名思义哦!

然后就是文章页面的主体了

  1. class="col-mb-12 col-8" id="main" role="main">
  2. <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
  3. class="post" itemscope itemtype="http://schema.org/BlogPosting">
  4. <h2 <span="">class="post-title" itemprop="name headline">$this->permalink() ?>"><!--?php <span-->$this->title() ?></h2>
  5. <ul <span="">class="post-meta">
  6. <li itemprop="author" itemscope="" itemtype="http://schema.org/Person"><!--?php _e('作者: '); ?-->$this->author->permalink(); ?>" rel="author"><!--?php <span-->$this->author(); ?></li>
  7. <li><!--?php _e('时间: '); ?--><<span>time</span> datetime="<!--?php <span-->$this->date('c'); ?>" itemprop="datePublished"><!--?php <span-->$this-><span>date</span>('F j, Y'); ?><!--<span-->time></li>
  8. <li><!--?php _e('分类: '); ?--><!--?php <span-->$this->category(','); ?></li>
  9. <li itemprop="interactionCount">$this->permalink() ?>#comments"><!--?php <span-->$this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></li>
  10. </ul>
  11. class="post-content" itemprop="articleBody">
  12. <!--?php <span-->$this->content('- 阅读剩余部分 -'); ?>
  13. <!--?php <span-->endwhile; ?>
  14. <!--?php <span-->$this->pageNav('« 前一页', '后一页 »'); ?>
  15. <!-- <span>end</span> <span>#</span><span>main-->

endwhile是什么鬼????为什么我重来没用过....查阅了下资料,原来是一种语法糖:)

文章主体就是从这里开始到结束的

  1. <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
  2. <!--?php <span-->endwhile; ?>

:替代了{

;替代了}

详细见文章:PHP中流程控制的替代语法

接着就是一些方法了

  1. <!--?php <span-->$this->permalink() ?><span> 文章所在的连接
  2. </span><!--?php <span-->$this->title() ?><span> 文章标题
  3. </span><!--?php <span-->$this->author(); ?><span> 文章作者
  4. </span><!--?php <span-->$this->author->permalink(); ?><span> 文章作者地址
  5. </span><!--?php <span-->$this-><span>date</span>('F j, Y'); ?><span> 文章的发布日期,格式可参考PHP日期格式
  6. </span><!--?php <span-->$this->category(','); ?><span> 文章所在分类
  7. </span><!--?php <span-->$this->commentsNum('%d Comments'); ?><span> 文章评论数及连接
  8. </span><!--?php <span-->$this->content('Continue Reading...'); ?> 文章内容,其中的“<span>Continue</span> Reading…” 是显示摘要时隐藏部分的文字

_e()这是什么方法,专一而精十

看了下wordpress里面的_e()方法,居然是用作翻译的。。。难道typecho还有歪果仁使用(逃

直接打印输出到 html 中的字符串,就用 _e() 。具体看这里

在代码里面还能看见itemprop属性,这是html5新加的,暂时不用管他Q.Q

最后是一个分页的方法

  1. <!--?php <span-->$this->pageNav(); ?>

至此,index.php文件已经被分析一遍了,虽然我没有php基础,但是学习了之后发现不难,嘿嘿!继续努力!

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1074252.htmlTechArticle学习typecho主题开发笔记01,typecho主题笔记01 博客被加速乐坑掉,于是有了学习typecho主题开发的想法,感谢这个机会! 首先是去看主题文件夹下...

人气教程排行