【WordPress】修改主题时常用到的内置函数(二)

/ 36评 / 0

前一篇文章中主要介绍了一些WordPress内置的条件判断和调用博客信息的函数,要想DIY一下有自己风格的主题仅靠这些还是不够的,这次就继续说一下还有哪些函数可以帮助我们更好的修改甚至编写属于自己的主题。

<?php get_header(); ?> : 调用Header模板,加载header.php文件。

<?php get_sidebar(); ?> : 调用Sidebar模板,加载sidebar.php文件。

<?php get_footer(); ?> : 调用Footer模板,加载footer.php。

<?php the_content(); ?> : 显示内容(Post/Page),其有参形式为:<?php the_content( $more_link_text, $strip_teaser, $more_file ); ?>,其中$more_link_text为添加more标签后显示的链接文字,默认为“more…”;$strip_teaser为布尔值,true表示隐藏more标签前的文字,false表示显示该部分文字,默认为false;$more_file表示more链接指向的文件,现在一般用不到这个参数了。

<?php if(have_posts()) : ?> : 检查是否存在Post/Page,一定注意if()语句后的冒号“:”,它是if语句开始的标志,一般以<?php endif; ?>表示if语句的结束。

<?php while(have_posts()) : the_post(); ?> : 如果存在Post/Page则予以显示。

<?php endwhile; ?> : While 循环结束。

<?php the_time(‘字符串’) ?> : 显示时间,时间格式由“字符串”参数决定,参数格式按照php语法规则填写。

<?php comments_popup_link(); ?> : 正文中的留言链接。如果使用 comments_popup_script() ,则留言会在新窗口中打开,反之,则在当前窗口打开。

<?php the_title(); ?> : 内容页(Post/Page)标题,带参形式为<?php the_title($before, $after, $echo ); ?>,$before为字符串类型,显示在标题前面,$after显示在标题后面,二者默认值均为空。

<?php the_permalink() ?> : 内容页(Post/Page) 的Url。

<?php the_category(‘,’ ) ?> : 特定内容页(Post/Page)所属Category,有参形式为<?php the_category( $separator, $parents, $post_id ); ?>,$separator为分隔两个分类链接的字符或文字,默认的是将这些链接放在无序列表中;$parents表示是否显示子分类与父分类之间的关系,当取值为“multiple”时表示显示,取值为“single”时不显示。

<?php the_author(); ?> : 显示作者

<?php the_ID(); ?> : 特定内容页(Post/Page) ID

<?php edit_post_link(); ?> : 如果用户已登录并具有权限,显示编辑链接,有参形式为<?php edit_post_link( $link, $before, $after, $id ); ?>,$link表示编辑链接的文字,默认为“__('Edit This')”,$before和$after分别表示链接前或后的文字,默认为空。

<?php get_links_list(); ?> : 显示Blogroll中的链接,可以按链接名称为链接排序,此时调用方式为get_links_list(‘name’),还可以按ID排序,get_links_list(‘id’)。

<?php comments_template(); ?> : 调用留言/回复模板,载入comments.php文件,有参形式为<?php comments_template( $file, $separate_comments ); ?>,$file为文件地址,默认为“/comments.php”, $separate_comments为布尔值,判断是否按评论类型来区分评论,默认为false。

<?php wp_list_pages(); ?> : 显示Page列表,有参形式为<?php wp_list_pages( $args ); ?>,$args为数组参数,其数组元素如下:

$args = array(
'depth'??????? => 0,
'show_date'??? => ,
'date_format'? => get_option('date_format'),
'child_of'???? => 0,
'exclude'????? => ,
'include'????? => ,
'title_li'???? => __('Pages'),
'echo'???????? => 1,
'authors'????? => ,
'sort_column'? => 'menu_order, post_title',
'sort_order'?? => 'ASC',
'link_before'? => ,
'link_after'?? => ,
'exclude_tree' =>? )

根据其各元素名称不难猜出它代表的含义,如果一一介绍足够再写一篇了,大家可以参考官方文档http://codex.wordpress.org/Function_Reference/wp_list_pages

<?php wp_list_categories(); ?> : 显示Categories列表,和上一个函数相似,它也有一个数组参数,有参形式为<?php wp_list_categories( $args ); ?>,$args具体如下:

$args = array(
'show_option_all'??? => ,
'orderby'??????????? => 'name',
'order'????????????? => 'ASC',
'show_last_update'?? => 0,
'style'????????????? => 'list',
'show_count'???????? => 0,
'hide_empty'???????? => 1,
'use_desc_for_title' => 1,
'child_of'?????????? => 0,
'feed'?????????????? => ,
'feed_type'????????? => ,
'feed_image'???????? => ,
'exclude'??????????? => ,
'exclude_tree'?????? => ,
'include'??????????? => ,
'hierarchical'?????? => true,
'title_li'?????????? => __( 'Categories' ),
'number'???????????? => NULL,
'echo'?????????????? => 1,
'depth'????????????? => 0,
'current_category'?? => 0,
'pad_counts'???????? => 0,
'taxonomy'?????????? => 'category',
'walker'???????????? => 'Walker_Category' )

官方详细介绍链接:http://codex.wordpress.org/Template_Tags/wp_list_categories

<?php next_post_link(‘%link’); ?> : 下一篇文章链接,有参形式为<?php next_post_link('format', 'link', 'in_same_cat', 'excluded_categories'); ?>,format为链接的样式,默认为“%link &raquo;”; link为链接文字,默认为“%title”; in_same_cat为布尔值,表示下一篇文章是否为相同目录内的文章,默认为false;excluded_categories表示下一篇文章所在的目录范围,如1 and 5 and 15”表示下一篇文章在ID1515的分类中选出。

<?php previous_post_link(‘%link’); ?> : 上一篇文章链接,用法同上。

<?php get_calendar(); ?> : 显示日历

<?php wp_get_archives() ?> : 显示内容存档,同样具有一个数组参数,数组结构如下:

$args = array(
'type'??????????? => 'monthly',
'limit'?????????? => ,
'format'????????? => 'html',
'before'????????? => ,
'after'?????????? => ,
'show_post_count' => false,
'echo'??????????? => 1 )

<?php posts_nav_link(); ?> : 导航,显示上一篇/下一篇文章链接,制作分页页码时经常用到,有参形式为<?php posts_nav_link('sep','prelabel','nextlabel'); ?>,prelabel表示前一页的链接文字,nextlabel表示后一页的链接文字,sep表示分隔二者的字符或文字。

<?php include(TEMPLATEPATH ./ ‘文件名’); ?> : 嵌入其他文件,可为定制的模板或其他类型文件

<?php echo get_num_queries();?>: 显示页面需要执行的数据库查询次数,通过了解查询次数你可以判断一下自己主题的加载速度快或是慢。

总算把这一话题写完了!能想到的主要函数就这么多了,呵呵,希望对新手能有帮助,老鸟们就多多批评指正。本打算是对几个函数做一下简要介绍的,不料竟然写出来这么多东西,这是我始料未及的,现在甚至有翻译WordPress官方帮助文档的冲动了!呵呵,都来DIY自己的主题吧!

无折腾,不WP!

PS:这两天实验室网络老是抽疯,时不时地就断线,不知道哪个环节出问题了,回复怠慢或回访不及时还请大家谅解!

36条回应:“【WordPress】修改主题时常用到的内置函数(二)”

  1. hyena说道:

    我是WP的初学者,看起来很吃力。

  2. 珊珊说道:

    哈哈,很受用,收藏了,等有时间我也开发个主题。

  3. 园子说道:

    这么多函数哈
    真得学学了。

  4. 学夫子说道:

    今天来看看,祝愿博主工作顺利,时时开心

  5. 阿鼎说道:

    这些暂时先收藏着,等懂点php和CSS再来看看! :mrgreen:

  6. kaka说道:

    说的很清晰啊~~一看基本就能懂了 ~~ 🙂

  7. clyee说道:

    汉化主题多了,这些东西熟

  8. 签名说道:

    我不懂这个呢 呵呵 留个脚印

珊珊进行回复 取消回复

邮箱地址不会被公开。 必填项已用*标注