时间:2021-07-01 10:21:17 帮助过:99人阅读
博客被加速乐坑掉,于是有了学习typecho主题开发的想法,感谢这个机会!
首先是去看主题文件夹下面的'index.php',一个博客的文章页面一般包括下面几个基本元素
下面是这是index.php的源代码:
- <span> 1</span> <!--?<span-->php
- <span> 2</span> <span>/*</span><span>*
- </span><span> 3</span> <span> * 这是 Typecho 0.9 系统的一套默认皮肤
- </span><span> 4</span> <span> *
- </span><span> 5</span> <span> * @package Typecho Replica Theme
- </span><span> 6</span> <span> * @author Typecho Team
- </span><span> 7</span> <span> * @version 1.2
- </span><span> 8</span> <span> * @link http://typecho.org
- </span><span> 9</span> <span>*/</span>
- <span>10</span>
- <span>11</span> <span>if</span> (!<span>defined</span>('__TYPECHO_ROOT_DIR__')) <span>exit</span><span>;
- </span><span>12</span> <span>$this</span>->need('header.php'<span>);
- </span><span>13</span> ?>
- <span>14</span>
- <span>15</span> class="col-mb-12 col-8" id="main" role="main">
- <span>16</span> <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
- <span>17</span> class="post" itemscope itemtype="http://schema.org/BlogPosting">
- <span>18</span> <h2 <span="">class="post-title" itemprop="name headline">$this->permalink() ?>"><!--?php <span-->$this->title() ?></h2>
- <span>19</span> <ul <span="">class="post-meta">
- <span>20</span> <li itemprop="author" itemscope="" itemtype="http://schema.org/Person"><!--?php _e('作者: '); ?-->$this->author->permalink(); ?>" rel="author"><!--?php <span-->$this->author(); ?></li>
- <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>
- <span>22</span> <li><!--?php _e('分类: '); ?--><!--?php <span-->$this->category(','); ?></li>
- <span>23</span> <li itemprop="interactionCount">$this->permalink() ?>#comments"><!--?php <span-->$this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></li>
- <span>24</span> </ul>
- <span>25</span> class="post-content" itemprop="articleBody">
- <span>26</span> <!--?php <span-->$this->content('- 阅读剩余部分 -'); ?>
- <span>27</span>
- <span>28</span>
- <span>29</span> <!--?php <span-->endwhile; ?>
- <span>30</span>
- <span>31</span> <!--?php <span-->$this->pageNav('« 前一页', '后一页 »'); ?>
- <span>32</span> <!-- <span>end</span> <span>#</span><span>main-->
- <span>33</span>
- <span>34</span> <!--?php <span-->$this->need('sidebar.php'); ?>
- <span>35</span> <!--?php <span-->$this->need('footer.php'); ?>
- <p>2-9行是注释,里面包含了主题的各种信息,每行以*开头。</p>
@package 表示主题的名称
@author 表示作者信息
@version 表示主题当前的版本
@link 表示作者的网站链接
include()方法用来包含要用到的php文件,具体用法查阅PHP官方手册include()方法
在12,34,35行都能看到$this->need(),它在typecho里面就和include()的作用是一样的
- <span>$this</span>->need('header.php'<span>);
- </span><!--?php <span-->$this->need('sidebar.php'); ?>
- <!--?php <span-->$this->need('footer.php'); ?>
所以上面的代码就是调用header.php,sidebar.php,footer.php。具体这三个php文件是什么作用的,很简单,顾名思义哦!
然后就是文章页面的主体了
- class="col-mb-12 col-8" id="main" role="main">
- <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
- class="post" itemscope itemtype="http://schema.org/BlogPosting">
- <h2 <span="">class="post-title" itemprop="name headline">$this->permalink() ?>"><!--?php <span-->$this->title() ?></h2>
- <ul <span="">class="post-meta">
- <li itemprop="author" itemscope="" itemtype="http://schema.org/Person"><!--?php _e('作者: '); ?-->$this->author->permalink(); ?>" rel="author"><!--?php <span-->$this->author(); ?></li>
- <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>
- <li><!--?php _e('分类: '); ?--><!--?php <span-->$this->category(','); ?></li>
- <li itemprop="interactionCount">$this->permalink() ?>#comments"><!--?php <span-->$this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></li>
- </ul>
- class="post-content" itemprop="articleBody">
- <!--?php <span-->$this->content('- 阅读剩余部分 -'); ?>
- <!--?php <span-->endwhile; ?>
- <!--?php <span-->$this->pageNav('« 前一页', '后一页 »'); ?>
- <!-- <span>end</span> <span>#</span><span>main-->
endwhile是什么鬼????为什么我重来没用过....查阅了下资料,原来是一种语法糖:)
文章主体就是从这里开始到结束的
- <!--?php <span-->while(<span>$this</span>-><span>next</span>()): ?>
- <!--?php <span-->endwhile; ?>
:替代了{
;替代了}
详细见文章:PHP中流程控制的替代语法
接着就是一些方法了
- <!--?php <span-->$this->permalink() ?><span> 文章所在的连接
- </span><!--?php <span-->$this->title() ?><span> 文章标题
- </span><!--?php <span-->$this->author(); ?><span> 文章作者
- </span><!--?php <span-->$this->author->permalink(); ?><span> 文章作者地址
- </span><!--?php <span-->$this-><span>date</span>('F j, Y'); ?><span> 文章的发布日期,格式可参考PHP日期格式
- </span><!--?php <span-->$this->category(','); ?><span> 文章所在分类
- </span><!--?php <span-->$this->commentsNum('%d Comments'); ?><span> 文章评论数及连接
- </span><!--?php <span-->$this->content('Continue Reading...'); ?> 文章内容,其中的“<span>Continue</span> Reading…” 是显示摘要时隐藏部分的文字
_e()这是什么方法,专一而精十
看了下wordpress里面的_e()方法,居然是用作翻译的。。。难道typecho还有歪果仁使用(逃
直接打印输出到 html 中的字符串,就用 _e() 。具体看这里
在代码里面还能看见itemprop属性,这是html5新加的,暂时不用管他Q.Q
最后是一个分页的方法
- <!--?php <span-->$this->pageNav(); ?>
至此,index.php文件已经被分析一遍了,虽然我没有php基础,但是学习了之后发现不难,嘿嘿!继续努力!
http://www.bkjia.com/PHPjc/1074252.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1074252.htmlTechArticle学习typecho主题开发笔记01,typecho主题笔记01 博客被加速乐坑掉,于是有了学习typecho主题开发的想法,感谢这个机会! 首先是去看主题文件夹下...