03
2010

[Tech]WordPress模板制作

01 概念

  • Template(模板):代码可重用;
  • Theme(主题):包含图像、代码等;
  • Post(日志):发布的日志;
  • Page(静态页面):一种特殊的 post,不以分类组织。

02 完整的主题文件列表

  • style.css
  • index.php
  • page.php
  • single.php(单一日志)
  • archive.php(显示存档页面)
  • search.php
  • 404.php
  • comments.php
  • comments-popup.php
  • author.php
  • date.php

03 页面层级结构

main-hierarchy

04 页面结构
页面由多个模板文件组成。以首页为例:
index

  • index.php
    包含首页上所有模块,其中内容模块主要包括日志标题、日志内容(文本及图片)和日志元数据 (额外信息,如作者、日志发布时间、分类、留言数)。
  • header.php
    包含博客的标题(title)和描述(description)。
  • sidebar.php
    包含页面列表、分类列表、存档列表、友情链接列表、标签云或其他一些列表。
  • footer.php
    包含版权信息等。

05 PHP知识

  • 主循环(The Loop)

06 Coding规范

  • 代码缩进(使用tab健)

07 人机逻辑转换

[PHP]常用PHP函数及命令

  • 调用Header.php:<?php get_header(); ?>
  • 调用Sidebar.php:<?php get_sidebar(); ?>
  • 调用Footer.php:<?php get_footer(); ?>
  • 显示内容(Post/Page):<?php the_content(); ?>
  • 检查是否存在Post/Page:<?php if(have_posts()) : ?>
  • If 结束:<?php endif; ?>
  • 如果存在Post/Page则予以显示:<?php while(have_posts()) : the_post(); ?>
  • While 结束:<?php endwhile; ?>
  • 特定内容页(Post/Page)所属Category:<?php the_category(’, ‘) ?>
  • 内容页(Post/Page)标题:<?php the_title(); ?>
  • 特定内容页(Post/Page) ID:<?php the_ID(); ?>
  • 内容页(Post/Page) Url:<?php the_permalink() ?>
  • 调用文章标签:<?php the_tags(); ?>
  • 作者:<?php the_author(); ?>
  • 显示时间,时间格式由“字符串”参数决定:<?php the_time(’字符串’) ?>
  • 2008-12-03 3:10:48:<?php the_time(‘Y-m-d h:i:s’) ?>
  • 如果用户已登录并具有权限,显示编辑链接:<?php edit_post_link(); ?>
  • 正文中的留言链接正文中的留言链接:<?php comments_popup_link(); ?>
  • 在新窗口中打开留言:comments_popup_script()
  • 调用具体的日志来显示:the_post()
  • 调用博客标题:bloginfo(‘name’)
  • 调用冒号:<?php _e(’Filed under:’); ?>
  • 调用by :<?php _e(’by’); ?>
  • 显示Blogroll中的链接:<?php get_links_list(); ?>
  • 调用留言/回复模板:<?php comments_template(); ?>
  • 显示Page列表:<?php wp_list_pages(); ?>
  • 显示Categories列表:<?php wp_list_categories(); ?>
  • 下一篇文章链接:<?php next_post_link(’ %link ‘); ?>
  • 上一篇文章链接:<?php previous_post_link(’%link’); ?>
  • 日历:<?php get_calendar(); ?>
  • 显示内容存档:<?php wp_get_archives() ?>
  • 导航,显示上一篇/下一篇文章链接:<?php posts_nav_link(); ?>
  • 嵌入其他文件,可为定制的模板或其他类型文件:<?php include(TEMPLATEPATH . ‘/文件名’); ?>
  • 按一定数量调取相应分类版块文章:<?php query_posts(’cat=1&showposts=6′); ?>

[PHP]基本条件判断

  • 是否为主页:is_home()
  • 是否为内容页(Post):is_single()
  • 是否为内容页(Page):is_page()
  • 是否为Category/Archive页:is_category()
  • 是否为Tag存档页:is_tag()
  • 是否为指定日期存档页:is_date()
  • 是否为指定年份存档页:is_year()
  • 是否为指定月份存档页:is_month()
  • 是否为指定日存档页:is_day()
  • 是否为指定时间存档页:is_time()
  • 是否为存档页:is_archive()
  • 是否为搜索结果页:is_search()
  • 是否为 “HTTP 404: Not Found” 错误页:is_404()
  • 主页/Category/Archive页是否以多页显示:is_paged()
  • 定义一个变量$postcnt,赋值为1:<?php $postcnt = 1; ?>
  • 判断当 $postcnt=1时:<?php if ($postcnt == 1) : ?>

[HTML]

  • 加上链接:<a href=”#”>link</a>
  • 空行:<br />

08 备忘

  • 模板标记
    <?php
    /*
    Template Name: www.ecpower.biz
    */
    ?>
  • 空行:<br />
  • $args = array(‘category’ =>
    $args = array(‘category’ => $catid,’numberposts’ => 10);这里的numberposts可以控制显示数目


Written by Elson in: 技 | Tech |

1 条评论 »

  • wes

    “人机逻辑转换”,这个很实用!

    评论 | 2010年01月4日

RSS feed for comments on this post. TrackBack URL

留下评论

TheBuckmaker WordPress Themes Webhosting without limits, fli4l