zoukankan      html  css  js  c++  java
  • 剖析WordPress模板文件【转】

    在WordPress中如何按你的意愿显示页面,关键看你是否了解WordPress主题模板页面。 这里所说的主题文件是指显示页面的主题文件,而非实现评论、侧边栏等功能的主题文件。大多数用户不使用WordPress安装时自带的默认主题,他们会在 互联网上下载免费主题。 这是一种设计博客版式的好方法,但不是所有主题开发者都用相同的方式编写主题。 主题的表现很大程度上取决于开发者用在主题上的开发时间和对WordPress的了解。

    下面我会为大家介绍设计主题页面的所有相关知识,通过这些下面的信息你甚至可以开始为自己设计一个主题。 除非你是专家级的主题开发者,否则都可以从这里学到些新的东西。

    WordPress如何工作

    首先需要了解的是WordPress的模板层级,或者说是“WordPress调用页面的顺序”。 “index.php”是唯一一个所有WordPress主题的PHP文件中都必须具备的文件。“index.php”可以执行WordPress的所有单独功能。

    页面调用顺序

    每当有WordPress页面被调用时,WordPress的“引擎”会判断(通过排除法)页面的类型。 这类似于询问“我在哪儿?”。 WordPress回答“我在…类型的页面上”,然后以特定顺序调用页面。 WordPress找不到需要的PHP文件时,会使用“index.php”文件来代替所需文件。 WordPress首先会寻找以下九种基本页面:

    首页
    如果WordPress判断是在首页上,会先调用“home.php”文件然后再调用“index.php”。

    日志页
    如果是(单篇)日志页,首先调用“single.php”然后默认调用“index.php”。

    页面
    如果是静态页面或“页面型”页面(应用了模板的页面),WordPress首先调用“pagetemplate.php”然后默认调用“index.php”。

    “分类”页
    如果WordPress判断是分类页,则首先调用该类别编号的页面,例如“category-7.php”。 找不到相应文件时可以查找“category.php”(category.php可以用于所有类别页)。 如果没有“category.php”则继续查找“archive.php”,最后默认调用“index.php”。

    标签页
    如果WordPress判断是标签页,会首先加载“tag-slug.php”文件,以具体的slug(别名)为标签名。 如果标签是“wordpress hacks”,那么标签别名页就是“tag-wordpress-hacks.php”。 如果加载不成,WP会继续查找“tag.php”文件,该文件可用于所有标签页,然后调用“archive.php”,最后默认调用 “index.php”。

    作者页
    博客拥有多个作者时,WP会首先寻找“author.php”文件以显示作者详情。 如果没有“author.php”则继续查找“archive.php”,最后默认调用“index.php”。

    存档页
    WP为之前的日志加载信息页面时,同时也加载了存档页。 WP首先加载“date.php”,其次“archive.php”,最后默认加载“index.php”。

    搜索页或404页
    若WP判断是在搜索结果页或404(页面未找到)页,会尝试加载search.php或404.php文件。 如果无法加载search.php或404.php,WP仍然默认加载“index.php”。

    附件页
    附件页是所有WordPress主题模板页面中使用次数最少的一种页面类型。 WordPress通常用这些特殊的附件页来加载若干信息,这些信息解释首先查找“image.php”, “audio.php”, “video.php”, 以及“application.php”的原因。 然后WP查找“attachment.php”或“single.php”,如果这两个文件不可用,默认查找“index.php”。

    WP主题模板内部运行情况

    可以用单独的index.php文件来调用以上九种类型的页面,这在上面也提到过。 也可以在一些条件标签中编写代码,我在这篇文章的结尾部分会告诉大家如何操作。 一个页面中可能含有很多代码,有时甚至有些混乱,这样我们要修改代码来进行设计就不太方便了。

    不过凑巧的是,就像WordPress查找九种基本页面一样,每个主题模板页面也包含九种基本的WordPress元素:

    1. 调用页眉
    2. 开启the loop(主循环)
    3. 调用永久链接与(若干)meta
    4. 用以通知WordPress应获取的信息的调用
    5. 用以获取获取文章内容或摘要的调用
    6. (可能有)更多的meta
    7. 关闭the loop(主循环)
    8. 调用侧边栏
    9. 调用页脚

    这是WordPress元素,能让这些元素运行的PHP代码分布在不同的地方,让你的主题版面和平面设计保持正常工作。 下面我要详细介绍一下这些元素,以便大家进一步了解如何设计主题模板页面。

    调用页眉,侧边栏以及页脚

    这三种元素基本类似。 当你在模板中看到以下代码:

    <?php get_header(); ?>

    表明WordPress打开了“header.php”文件。 get_sidebar() (sidebar.php) 和 get_footer() (footer.php)也是同样的道理。 你可能会有很多页眉、页脚和侧边栏,这时可以点击上面的“条件标签”查看相关内容。

    开启the loop(主循环)

    Wordpress Loop”会在数据库中持续调用文件,直到WordPress终止调用。 “the loop”的结构随显示页面类型而变,WordPress尝试加载的每个基本类型页面都有一个“loop”。

    下面是开启the loop的代码:

    <?php if ( have_posts() ) : <?php if ( have_posts() ) : the_post(); ?>

    我们可以看到,代码被拆分开来,have_posts用以定义条件标签,while和the_post则各成一部分,但这仍然是the loop,在所有页面中基本都是这样。 多行loop时的一个用法是:用query_posts在“if have_posts”和代码的剩余部分之间放置一个参数,用来显示单篇文章、某一时段的文章、最近一篇文章或者某一类别中的文章,也可以改变the loop中迭代文章的顺序。

    调用永久链接与若干)meta

    通过the loop的每次迭代,开放The loop的最后部分(the_post)能够激活元素数据。 这里的个体数据通常是指“post meta”, 尤其是永久链接(URL)、标题、时间这样的meta。大多数主题会在单篇文章内容前显示一些信息,然后在文章内容后也显示一些信息——比如文章类别和标签。

    下面是一些你可以在post meta中调用的内容: the_permalink, the_ID, the_title, the_time, the_author, the_author_email, the_author_posts_link, the_category, single_cat_title, the_tags, single_tag_titls, edit_post_link, comments_popup_link, comments_rss_link

    下面是Post meta的代码示例:

    <div class="post" id="post-<?php the_ID(); ?>">
    <h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
    </div>

    用以通知WordPress应获取的信息的调用

    之后WordPress会决定所显示的单篇文章内容的详细程度。 文章详细程度取决于你的主题使用的是“the_content”(显示全文)或“the_excerpt”(显示摘要)。

    可能有更多的meta

    上面提到过,文章下方都有指定的类别或标签,有时你还可能看到“edit”链接。 一些主题甚至在文章内容后添加了date published meta。

    关闭the loop(主循环)

    代码如下:

    <?php else : ?>
    <?php endif; ?>

    这是一个多行代码,你可以在其中添加其它信息,例如“Sorry, we didn’t find anything”。 你可以在侧边栏之后、调用侧边栏和页脚之前找到“next”“previous”导航链接。

    Loops

    大多数loops与我在上面所举的例子都差不多,但这并不表示你不能随意修改这些loops。 推荐大家阅读WP Codex上的文章运行中的The Loop,文章中列举了存档、类别以及单篇文章以及静态首页中的the loop。

    WP Codex上the loop中也有一些在同一页面上放置多个loop的示例。 Perishable Press上有一篇关于多loop,多栏内容的精彩教程。 Perishable Press上还有一些很好的loop模板,以及一篇关于两栏水平序列文章的教程。

    结论

    只要掌握了一点这方面的知识,你就可以随意修改任何WordPress主题模板页面了。 现在你已经充分了解了WordPress的页面和the loop的运行,就可以征服任何难题了。 现在就开始你的博客主题设计之旅吧!

    原文:How To: Hack WordPress Theme Template Pages
    中文翻译:WordPress啦!

    * 版权声明:作者WordPress啦! 转载请注明出处。

  • 相关阅读:
    ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
    POJ 1088 滑雪 DP
    UVA 11584 最短回文串划分 DP
    POJ 2531 Network Saboteur DFS+剪枝
    UVa 10739 String to Palindrome 字符串dp
    UVa 11151 Longest Palindrome 字符串dp
    UVa 10154 Weights and Measures dp 降维
    UVa 10271 Chopsticks dp
    UVa 10617 Again Palindrome 字符串dp
    UVa 10651 Pebble Solitaire 状态压缩 dp
  • 原文地址:https://www.cnblogs.com/yueke/p/3885073.html
Copyright © 2011-2022 走看看