学习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->title() ?>
19
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'); ?
The following is the source code of index.php:
<span> 1</span> <?<span>php
</span><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> <div <span>class</span>="col-mb-12 col-8" id="main" role="main">
<span>16</span> <?php <span>while</span>(<span>$this</span>-><span>next</span>()): ?>
<span>17</span> <article <span>class</span>="post" itemscope itemtype="http://schema.org/BlogPosting">
<span>18</span> <h2 <span>class</span>="post-title" itemprop="name headline"><a itemtype="url" href="<?php <span>$this</span>->permalink() ?>"><?php <span>$this</span>->title() ?></a></h2>
<span>19</span> <ul <span>class</span>="post-meta">
<span>20</span> <li itemprop="author" itemscope itemtype="http://schema.org/Person"><?php _e('作者: '); ?><a itemprop="name" href="<?php <span>$this</span>->author->permalink(); ?>" rel="author"><?php <span>$this</span>->author(); ?></a></li>
<span>21</span> <li><?php _e('时间: '); ?><<span>time</span> datetime="<?php <span>$this</span>->date('c'); ?>" itemprop="datePublished"><?php <span>$this</span>-><span>date</span>('F j, Y'); ?></<span>time</span>></li>
<span>22</span> <li><?php _e('分类: '); ?><?php <span>$this</span>->category(','); ?></li>
<span>23</span> <li itemprop="interactionCount"><a itemprop="discussionUrl" href="<?php <span>$this</span>->permalink() ?>#comments"><?php <span>$this</span>->commentsNum('评论', '1 条评论', '%d 条评论'); ?></a></li>
<span>24</span> </ul>
<span>25</span> <div <span>class</span>="post-content" itemprop="articleBody">
<span>26</span> <?php <span>$this</span>->content('- 阅读剩余部分 -'); ?>
<span>27</span> </div>
<span>28</span> </article>
<span>29</span> <?php <span>endwhile</span>; ?>
<span>30</span>
<span>31</span> <?php <span>$this</span>->pageNav('« 前一页', '后一页 »'); ?>
<span>32</span> </div><!-- <span>end</span> <span>#</span><span>main--></span>
<span>33</span>
<span>34</span> <?php <span>$this</span>->need('sidebar.php'); ?>
<span>35</span> <?php <span>$this</span>->need('footer.php'); ?>
Copy after login
<p>2-9行是注释,里面包含了主题的各种信息,每行以*开头。</p>
Copy after login
@package represents the name of the theme
@author indicates author information
@version indicates the current version of the theme
@link Indicates the author’s website link
include() method is used to include the php files to be used. For specific usage, please refer to the PHP official manual include() method
can be seen on lines 12, 34, and 35$this- >need(), it has the same function as include() in typecho
<span>$this</span>->need('header.php'<span>);
</span><?php <span>$this</span>->need('sidebar.php'); ?>
<?php <span>$this</span>->need('footer.php'); ?>
Copy after login
So the above code calls header.php, sidebar.php, footer.php. What are the specific functions of these three php files? It’s very simple, just as the name suggests!
Then there is the main body of the article page
<div <span>class</span>="col-mb-12 col-8" id="main" role="main">
<?php <span>while</span>(<span>$this</span>-><span>next</span>()): ?>
<article <span>class</span>="post" itemscope itemtype="http://schema.org/BlogPosting">
<h2 <span>class</span>="post-title" itemprop="name headline"><a itemtype="url" href="<?php <span>$this</span>->permalink() ?>"><?php <span>$this</span>->title() ?></a></h2>
<ul <span>class</span>="post-meta">
<li itemprop="author" itemscope itemtype="http://schema.org/Person"><?php _e('作者: '); ?><a itemprop="name" href="<?php <span>$this</span>->author->permalink(); ?>" rel="author"><?php <span>$this</span>->author(); ?></a></li>
<li><?php _e('时间: '); ?><<span>time</span> datetime="<?php <span>$this</span>->date('c'); ?>" itemprop="datePublished"><?php <span>$this</span>-><span>date</span>('F j, Y'); ?></<span>time</span>></li>
<li><?php _e('分类: '); ?><?php <span>$this</span>->category(','); ?></li>
<li itemprop="interactionCount"><a itemprop="discussionUrl" href="<?php <span>$this</span>->permalink() ?>#comments"><?php <span>$this</span>->commentsNum('评论', '1 条评论', '%d 条评论'); ?></a></li>
</ul>
<div <span>class</span>="post-content" itemprop="articleBody">
<?php <span>$this</span>->content('- 阅读剩余部分 -'); ?>
</div>
</article>
<?php <span>endwhile</span>; ?>
<?php <span>$this</span>->pageNav('« 前一页', '后一页 »'); ?>
</div><!-- <span>end</span> <span>#</span><span>main--></span>
Copy after login
What the hell is
endwhile???? Why haven’t I used it before... After checking the information, turns out to be a kind of syntactic sugar:)
The main body of the article starts and ends here
<?php <span>while</span>(<span>$this</span>-><span>next</span>()): ?>
<?php <span>endwhile</span>; ?>
Copy after login
: Replaces {
;replaced}
For details, see the article:Alternative syntax for flow control in PHP
Then there are some methods
<?php <span>$this</span>->permalink() ?><span> 文章所在的连接
</span><?php <span>$this</span>->title() ?><span> 文章标题
</span><?php <span>$this</span>->author(); ?><span> 文章作者
</span><?php <span>$this</span>->author->permalink(); ?><span> 文章作者地址
</span><?php <span>$this</span>-><span>date</span>('F j, Y'); ?><span> 文章的发布日期,格式可参考PHP日期格式
</span><?php <span>$this</span>->category(','); ?><span> 文章所在分类
</span><?php <span>$this</span>->commentsNum('%d Comments'); ?><span> 文章评论数及连接
</span><?php <span>$this</span>->content('Continue Reading...'); ?> 文章内容,其中的“<span>Continue</span> Reading…” 是显示摘要时隐藏部分的文字
Copy after login
_e() What is this method? Specialized and precise
I looked at the _e() method in WordPress and found that it is actually used for translation. . . Does typecho still have crooked nuts to use (escape
To directly print the string output to html, use _e(). See here for details
You can also see the itemprop attribute in the code. This is new to HTML5. Don’t worry about it for the time being. Q.Q
The last is a paging method
<?php <span>$this</span>->pageNav(); ?>
Copy after login
At this point, the index.php file has been analyzed. Although I have no PHP foundation, I found it is not difficult after learning, hehe! Keep up the hard work!
http://www.bkjia.com/PHPjc/1074252.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1074252.htmlTechArticleLearning typecho theme development notes 01, typecho theme notes 01 The blog was cheated by Accelerator, so I came up with learning typecho theme Thanks for the development idea, thank you for this opportunity! First of all, go to the theme folder...