首页 > 编程 > WordPress主题函数

WordPress主题函数

(一)WordPress基本模板文件,一套完整的WordPress模板包括如下文件,但是只有index.php和style.css是不能缺少的:

  1. style.css : CSS(样式表)文件,不可缺少版权部分,真正CSS样式表可以放在其他文件;
  2. index.php : 主页模板,不可缺少;
  3. archive.php : Archive/Category模板,如果缺少,默认为index.php的显示;
  4. 404.php : Not Found 错误页模板,如果缺少,默认为index.php的显示;
  5. comments.php : 留言/回复模板,不可缺少;
  6. footer.php : Footer模板,可合并到index.php;
  7. header.php : Header模板,可合并到index.php;
  8. sidebar.php : 侧栏模板,可合并到index.php;
  9. page.php : 内容页(Page)模板,如果缺少,默认为index.php的显示;
  10. single.php : 内容页(Post)模板,如果缺少,默认为index.php的显示;
  11. searchform.php : 搜索表单模板,可合并到index.php;
  12. search.php : 搜索结果模板,如果缺少,默认为index.php的显示;


(二)基本条件判断Tag

  1. is_home() : 是否为主页
  2. is_single() : 是否为内容页(Post)
  3. is_page() : 是否为内容页(Page)
  4. is_category() : 是否为Category/Archive页
  5. is_tag() : 是否为Tag存档页
  6. is_date() : 是否为指定日期存档页
  7. is_year() : 是否为指定年份存档页
  8. is_month() : 是否为指定月份存档页
  9. is_day() : 是否为指定日存档页
  10. is_time() : 是否为指定时间存档页
  11. is_archive() : 是否为存档页
  12. is_search() : 是否为搜索结果页
  13. is_404() : 是否为 “HTTP 404: Not Found” 错误页
  14. is_paged() : 主页/Category/Archive页是否以多页显示

(三)Header部分常用到的PHP函数

  1. <?php bloginfo('name'); ?> : 博客名称(Title)
  2. <?php bloginfo('stylesheet_url'); ?> : CSS文件路径
  3. <?php bloginfo('pingback_url'); ?> : PingBack Url
  4. <?php bloginfo('template_url'); ?> : 模板文件路径
  5. <?php bloginfo('version'); ?> : WordPress版本
  6. <?php bloginfo('atom_url'); ?> : Atom Url
  7. <?php bloginfo('rss2_url'); ?> : RSS 2.o Url
  8. <?php bloginfo('url'); ?> : 博客 Url
  9. <?php bloginfo('html_type'); ?> : 博客网页Html类型
  10. <?php bloginfo('charset'); ?> : 博客网页编码
  11. <?php bloginfo('description'); ?> : 博客描述
  12. <?php wp_title(); ?> : 特定内容页(Post/Page)的标题

(四)模板常用的PHP函数及命令

  1. <?php get_header(); ?> : 调用Header模板
  2. <?php get_sidebar(); ?> : 调用Sidebar模板
  3. <?php get_footer(); ?> : 调用Footer模板
  4. <?php the_content(); ?> : 显示内容(Post/Page)
  5. <?php if(have_posts()) : ?> : 检查是否存在Post/Page
  6. <?php while(have_posts()) : the_post(); ?> : 如果存在Post/Page则予以显示
  7. <?php endwhile; ?> : While 结束
  8. <?php endif; ?> : If 结束
  9. <?php the_time('字符串') ?> : 显示时间,时间格式由“字符串”参数决定,具体参考PHP手册
  10. <?php comments_popup_link(); ?> : 正文中的留言链接。如果使用 comments_popup_script() ,则留言会在新窗口中打开,反之,则在当前窗口打开
  11. <?php the_title(); ?> : 内容页(Post/Page)标题
  12. <?php the_permalink() ?> : 内容页(Post/Page) Url
  13. <?php the_category(',') ?> : 特定内容页(Post/Page)所属Category
  14. <?php the_author(); ?> : 作者
  15. <?php the_ID(); ?> : 特定内容页(Post/Page) ID
  16. <?php edit_post_link(); ?> : 如果用户已登录并具有权限,显示编辑链接
  17. <?php get_links_list(); ?> : 显示Blogroll中的链接
  18. <?php comments_template(); ?> : 调用留言/回复模板
  19. <?php wp_list_pages(); ?> : 显示Page列表
  20. <?php wp_list_categories(); ?> : 显示Categories列表
  21. <?php next_post_link('%link'); ?> : 下一篇文章链接
  22. <?php previous_post_link('%link'); ?> : 上一篇文章链接
  23. <?php get_calendar(); ?> : 日历
  24. <?php wp_get_archives() ?> : 显示内容存档
  25. <?php posts_nav_link(); ?> : 导航,显示上一篇/下一篇文章链接
  26. <?php include(TEMPLATEPATH . '/文件名'); ?> : 嵌入其他文件,可为定制的模板或其他类型文件

(五)与模板相关的其他函数

  1. <?php the_search_query(); ?> 搜索表单的值
  2. <?php _e('Message'); ?> : 输出相应信息
  3. <?php wp_register(); ?> : 显示注册链接
  4. <?php wp_loginout(); ?> : 显示登录/注销链接
  5. <?php wp_meta(); ?> 显示管理员的相关控制信息(为插件API HOOK用)
  6. <!–next page–> : 将当前内容分页
  7. <!–more–> : 将当前内容截断,以不在主页/目录页显示全部内容
  8. <?php timer_stop(1); ?> : 网页加载时间(秒)
  9. <?php echo get_num_queries(); ?> : 网页加载查询量

 

显示最新文章

<?php query_posts(’showposts=5′); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href=”<?php the_permalink() ?>”><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>

显示最新评论

<?php global $wpdb; $sql = “SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,30) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = ‘1′ AND comment_type = ” AND post_password = ” ORDER BY comment_date_gmt DESC LIMIT 10″; $comments = $wpdb->get_results($sql); $output = $pre_HTML; $output .= “\n<ul>”; foreach ($comments as $comment) { $output .= “\n<li>”.strip_tags($comment->comment_author) .”:” . “<a href=\”" . get_permalink($comment->ID) . “#comment-” . $comment->comment_ID . “\” title=\”on ” . $comment->post_title . “\”>” . strip_tags($comment->com_excerpt) .”</a></li>”; } $output .= “\n</ul>”; $output .= $post_HTML; echo $output;?>

显示热评文章

<?php $result = $wpdb->get_results(”SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 10″); foreach ($result as $topten) { $postid = $topten->ID; $title = $topten->post_title; $commentcount = $topten->comment_count; if ($commentcount != 0) { ?>
<li><a href=”<?php echo get_permalink($postid); ?>” title=”<?php echo $title ?>”><?php echo $title ?></a></li>
<?php } } ?>

显示文章分类

<h2>Categories</h2>
<ul><?php wp_list_cats(’sort_column=name’); ?></ul>

显示归档

<h2>Archives</h2>
<ul><?php wp_get_archives(’type=monthly’); ?></ul>

在侧栏显示页面列表

<h2>Pages</h2>
<ul><?php wp_list_pages(’title_li=’); ?></ul>

调用Gravatar(只适应2.5以上)

<?php if(function_exists(’get_avatar’)){ echo get_avatar($comment, ‘50?);} ?>

显示友情链接

<ul><?php get_links_list(); ?></ul>

显示管理员链接

<ul><?php wp_register(); ?>
<li><?php wp_loginout(); ?></li>
<li><a href=”http://www.wordpress.org/”>WordPress</a></li>
<?php wp_meta(); ?>
<li><a href=”http://validator.w3.org/check?uri=referer”>XHTML</a></li>
</ul>

在侧栏显示页面的子页面

<?php$children = wp_list_pages(’title_li=&child_of=’.$post->ID.’&echo=0′);if ($children) { ?>
<ul><?php echo $children; ?></ul>
<?php } ?>

显示Wordpress标签

<?php the_tags(); ?>

显示Wordpress标签云

<?php wp_tag_cloud(’smallest=8&largest=36&’); ?>

模板标题

<?php /* Template Name: Portfolio */ ?>

动态标题标签

<title><?phpif (is_home()) { echo bloginfo(’name’); } elseif (is_404()) { echo ‘404 Not Found’; } elseif (is_category()) { echo ‘Category:’; wp_title(”); } elseif (is_search()) { echo ‘Search Results’; } elseif ( is_day() || is_month() || is_year() ) { echo ‘Archives:’; wp_title(”); } else { echo wp_title(”); } ?></title>

在独立页面中运行PHP

<?php if ( is_home() ) { include (’file.php’); } ?>

分类: 编程 标签: , ,
  1. 2009年4月8日12:18 | #1

    很受用,收藏了,现在也只停留在修改模板中,CSS在各浏览器的兼容性还是很陌生~~

  2. 2009年4月8日15:25 | #2

    @佰草集 呵呵。加油~~一切都是慢慢来的

  3. 2009年4月8日19:52 | #3


    博客显示0.306

  4. 2009年4月8日21:40 | #4

    @漁生 那就是加载速度很快啊。我觉得那就是网络的事情。网站所在的服务器和你不畅通。就会慢。不是所有的网通的访问网通的就快。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。直接点击评论上方的回复实现此功能