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啦! 转载请注明出处。

  • 相关阅读:
    iOS之NSString类型为什么要用copy修饰
    【转】高频使用的git清单
    【转】把Git Repository建到U盘上去
    python程序的打开运行方式
    python运算符的优先级顺序
    iOS之正则表达式(一)
    iOS之input file调用相册控制器消失跳转到登陆页
    监督学习与无监督学习
    常用的文件打开模式
    编码格式
  • 原文地址:https://www.cnblogs.com/yueke/p/3885073.html
Copyright © 2011-2022 走看看