学习WordPress必须知道的函数三
在前面的2文章中酷码资源为你介绍了用好WordPress不可不知的前近20个函数,那些函数主要包括获取博客信息的函数,获取博客内容的函数以及一些用于判断是否能满足相应条件的条件函数,等等。今天,酷码资源继续为你介绍WordPress的重要函数。本文中将要介绍的函数除get_bloginfo()外,几乎全部都是将用在WordPress主题的侧边栏上的一些函数,比如get_posts()等等。
20.get_bloginfo()
该函数和我们前面的文章用好WordPress不可不知的函数(一)中介绍的bloginfo()函数实现近乎相同的功能。主要用来显示博客的信息;而且根据后跟参数的不同,会输出博客的不同信息。
其后不跟参数时,get_bloginfo()可以显示博客名称,形如“酷码资源”;
后跟其他参数时,可以显示对应的信息,比如get_bloginfo ( ‘description’ )用以显示博客描述信息;
其他还可以使用的参数包括name、url、wpurl以及admin_email等等。但因为其与bloginfo()函数实现相同的结果,所以,在bloginfo能够实现的情况下,酷码资源不推荐使用get_bloginfo()函数。
21.query_posts()
query_posts()函数结合适当的参数用来控制哪些文章会在页面上显示。
形如query_posts(”cat=3,6&cat=-5,-10″)表示取分类ID为3和6的文章显示,不取分类ID为5和10的文章显示;
形如query_posts(”order=ASC&showposts=10&offset=1&orderby=date&posts_per_page=5″)意义如下:
order=ASC表示按照升序排列,取为DESC则表示按降序;
showposts=10则表示获取10篇文章;
offset=1表示取最新的文章;
orderby=date表示将文章按照日期排序;
posts_per_page=5表示每页显示5篇文章。
需要注意的是该函数只是将文章内容从MySQL数据库中查询出来,要将其显示,还需要与其他语句配合,比如一个经常在侧边栏中使用的形式如下:
如上的这段代码用以在侧边栏的指定位置上显示最新的5篇文章。
query_posts()函数后面可以跟众多种类的参数,功能十分强大,在此,我们不进行过多介绍。如果时间和精力允许,酷码资源会在以后的文章中专门撰文详细地为朋友们做一介绍。
22.get_posts()
该函数和query_posts()函数功能大体相同,都是用来从数据库中查询并得到符合某条件的文章。不过get_posts()函数的使用有一个固定的形式,如下:
” id=”post-”>
即首先使用get_posts()函数查询得到文章数据,然后使用形如foreach($lastposts as $post) : setup_postdata($post);的循环将查询得到的文章内容显示出来。
get_posts()函数使用和query_posts()函数相同的参数,在此我们也不再作详细介绍。
23.wp_list_cats()
该函数和前文用好WordPress不可不知的函数(一)中wp_list_categories()函数实现相同的功能,不过在最新的WordPress版本中,此函数已经被弃用,其功能为wp_list_categories()函数完全取代。
24.get_calendar()
get_calendar()函数用以在WordPress上显示日历,日历样式和使用widget显示的效果相同,如下图所示:
其后可以跟一个BOOL参数,用以控制日历上方星期的显示样式。但经酷码资源测试,在中文状态下,使用TRUE或FALSE参数,日历的显示效果并没有什么区别。
25.wp_list_bookmarks()
该函数用来显示博客的友情链接,并可以使用各种参数来控制显示的数量、种类以及样式等等。
形如wp_list_bookmarks(’title_li=&categorize=0&orderby=rand&include=41,40,37,54′);的形式,意义解释如下:
title_li=&categorize=0是一种通常使用的组合,意为不显示WordPress后台控制面板中设置的友情链接标题,但所有友链都按照设置的分类显示出来;单独的一个title_li=还可以用来设置被显示友链的类别名称;
orderby=rand设置友链的显示方式为随机顺序,当然,还可以设置为其他的方式,比如id、url、name等等;
include=41,40,37,54表示只显示ID为这四个数字的四个友链;与此对应,还支持使用exclude,表示不显示ID为多少的友链。
# 此外,该函数还经常用到的参数有before和after,用来设置每个链接前后的文字,默认的是和
标记。
26.get_links()、wp_get_links()
这两个函数实现和25.wp_list_bookmarks()相同的功能,不过此二函数已在WordPress升级的过程中为25.wp_list_bookmarks()所取代。
27.wp_list_pages()
该函数以页面名称的超链接形式显示WordPress博客内的所有页面,经常用来建立顶端导航页面,或用来修饰侧边栏。
形如wp_list_pages(’title_li=&sort_column=menu_order&include=12,25,38,57&depth=1&’);的函数调用,各参数意义如下:
title_li=用来设置所有显示页面的一个总名称;后面没有参数值时,表示不显示名称;
sort_column=menu_order用来设置页面的显示顺序,表示按照WP后台设置的各页面顺序显示,其他的常用顺序设置可能还包括post_title、post_date、ID等等;
include=12,25,38,57表示只显示ID为这四个数值的四个页面;同样,可以使用exclude来排除相应ID的页面;
depth=1表示只显示父页面,对所有子页面不予显示;其他数值还包括默认的0,表示显示所有页面(子页面有缩进);-1显示所有页面(子页面无缩进);等等。
此外,该函数可能会用到的属性还包括link_before和link_after,用于设置显示的页面链接前后的字符。
28.wp_tag_cloud()
顾名思义,wp_tag_cloud()函数用来显示WordPress博客的标签云。
一种形如wp_tag_cloud(’smallest=8&largest=22&number=30&orderby=count’);的函数调用,各参数的意义如下:
smallest=8用来设置标签云中显示出来的所有标签中,计数最少(最少文章使用)的标签的字体大小为8;
largest=22用来设置标签云的所有标签中,计数最多(最多文章使用)的标签的字体大小为22;
number=30设置标签云中显示的最多标签数量为30;
orderby=count设置标签云中标签的排序方式为计数(默认),而不是名称(相应参数为name,widget调用时的默认值)。
其他常用的参数还包括include和exclude,用来设置在标签云中是否包含或去除ID为某数字的标签。
29.wp_register()
wp_register()函数用以向管理员显示“站点管理”超链接;或者当WP博客开放了注册时,向未登陆的用户显示“注册”超链接。
该函数不需要什么参数,唯一可能用到的参数形式如wp_register(’前’,’后’),可以在如上显示的超链接文字的前后分别显示一个“前”字和一个“后”字。当然,你可以据此发挥想象力来个性化自己网站的管理或注册链接。
30.wp_loginout()
该函数用来在指定位置显示一个“登录”链接;当然,如果你已经登录过了,则会相应地显示一个“退出”链接。此函数后面不使用任何参数,所以无法进行灵活的自定义。
不过如果你想自定义自己的WP博客的登录或退出链接文字的话,还是可以使用下面31中 酷码资源 介绍的函数wp_logout_url()和wp_login_url()。
31.wp_logout_url()、wp_login_url()
使用如上30中的函数尽管可以方便地为WP博客设置登录、退出链接,但自定义不够灵活。所以,从WordPress 2.7版本开始,提供了这里的两个函数。它们分别用来获取WP博客退出或登录超链接,然后,我们使用获得的超链接即可编写如下代码,来对WP博客的登录和退出链接进行灵活设置:
”>点击这里退出
”>点击这里登录
当然,要想实现完美的效果,还需要对访客的登录状态进行判断,使用一个if语句,根据登录状态显示相应的菜单项。
32.wp_meta()
该函数通常会紧跟如上29、30中的函数后面,其具体在直观显示上没有什么异样,貌似是WP主题为WP插件留下的API Hook,酷码资源建议朋友们在如上函数后面跟上这一函数。
33.get_recent_posts()
该函数只有当你安装了中文WordPress工具箱之后,才能使用。其作用是用来获取最新日志,函数原型如下:
# get_recent_posts($no_posts = 5, $before = ‘+ ‘, $after = ‘
’, $show_pass_post = false, $skip_posts = 0)
可以使用$no_posts控制显示文章数量,$before和$after的意义和前面函数中相同;至于后两个参数,一般不必设置,直接取默认值即可。
不过因为该函数与WordPress内置的get_posts()和query_posts()函数功能重复,所以通常情况下很少使用。
34.get_recent_comments()
其实安装了如上的中文WordPress工具箱之后,最常使用的是这个函数,因为WordPress程序本身没有内置获取最新评论的函数。该函数原型如下:
# get_recent_comments($no_comments = 5, $before = ‘ ‘, $after = ‘
’, $show_pass_post = false)
意义显然,和上面函数类似,酷码资源此处不再赘言。
35.get_recentcomments()
该函数是在安装了WP-RecentComments插件之后才具有的功能,与如上34中的函数类似。
该函数原型如下:
get_recentcomments(int num, int size)
36.wp_get_post_tags()
该函数用来在某个文章页面或者根据某篇文章的ID来获取该文章的tag,获取的结果被放置到一个tag数组中。一个常见的使用方式如下:
if (is_single()){$keywords = “”;$tags = wp_get_post_tags($post->ID);foreach ($tags as $tag ) {$keywords = $keywords . $tag->name . “,”;}echo $keywords;}
首先判断是否是单文章页面,如果是,则据当前文章的ID($post->ID)来获取当前文章的tag,然后取得其name($tag->name),并将其组合输出。
37.single_cat_title()、single_tag_title()
如名所言,这两个函数用来获取分类页面和tag页面的title,其通常的使用方式如:
然而,除此之外,single_cat_title()还可以用来在tag页面上获取当前页面的title;但single_tag_title()却不可用于获取分类页面的title。
38.get_settings()、get_option()
此二函数与前文用好WordPress不可不知的函数(三)中函数20.get_bloginfo()类似,使用方法也相同,可以通过后跟各种参数来获取WordPress博客的相关信息。
比如如下的调用方式:
get_settings(’name’)或get_option(’name’)
可以用来获取当前WordPress博客的标题。
39.wp_head()
该函数与前文32.wp_meta()相同,是WP主题为WP插件留下的API Hook。
40.get_header()、get_footer()、get_sidebar()和comments_template()
这几个函数是用来在WordPress主题中获取并包含相应的文件的。比如:
get_header()用来包含当前主题文件夹下的header.php;
get_footer()用来包含主题文件夹下的footer.php;
get_sidebar()用来包含主题文件夹下的sidebar.php;
comments_template()用来包含comments.php。
需要注意的一点是,如果当前主题文件夹下缺少对应的文件,则函数会使用wp-content/themes/default/文件夹下的对应文件代替。
此外,以上函数后面都不能跟参数,只有get_sidebar()例外,因为一个主题中可以使用多个sidebar。形如get_sidebar(’up’)的调用方法可将sidebar-up.php侧边栏模板文件包含到主题中。
除了以上几个函数之外,在主题中如果想包含一个具体的文件,还可以使用如下方式:
include(TEMPLATEPATH . ‘/***.php’)
如上的函数形式可以将当前主题文件夹下名为***.php的文件包含进来;其中TEMPLATEPATH是当前主题文件夹地址的一个引用(不含末尾的/,所以需要添加上)。
41.have_posts()、the_post()
这两个函数的使用范围有限,通常在WordPress的循环中使用,用以获取所有文章。其固定使用形式如下:
此处显示文章此处显示未找到文章时的信息,比如404相关
另一种常见的形式是将如上代码中的前两行组合起来(其他地方不变):
该形式通常会在模板的index.php、archive.php或者single.php等页面使用。除此之外的其他地方,我们通常不会看到此二函数的身影。
42.the_title()、the_title_attribute()
the_title()函数主要用来获取当前文章的title,其后可以跟上三个参数(可全部省略,取默认值),调用形式如下:
参数before用来设置在获取的title前面显示的字符内容;after用来设置title其后显示的内容;而display是一个Bool值,用于控制获取的title是否显示出来。
the_title_attribute()函数与the_title()类似,其使用方法如下:
the_title_attribute(’before=前&after=后&echo=true’)
其中before=和after=分别用于设置title前面和后面显示的字符;echo=true或者false用户设置获取的title字符串是否显示出来。
形如或the_title_attribute(’before=当前文章&after=的评论:&echo=true’)的调用形式将会显示如下的结果:
当前文章用好WordPress不可不知的函数的评论:
43.single_post_title()、single_tag_title()、single_cat_title()
44.the_ID()
该函数后面不跟任何参数,使用如下所示的调用方式:
用于获取并显示当前文章页面的ID号。不过需要特别注意的一点是,该函数只能在WordPress的大循环内使用,在其他地方使用可能也会显示ID号,但显示的内容始终不会随文章而改变。
此外,该函数通常还会在如下所示的CSS结构中使用:
可为博客中不同的作者设置不同的title样式,以示区分。
45.get_the_ID()
该函数与44.the_ID()函数实现完全相同的功能,目前WordPress官方也没有提供该函数的使用说明。你可以参阅如上44中对the_ID()函数的介绍。特别提醒一点,该函数与the_ID()类似,也只能在WordPress的大循环中才能正确使用。
46.the_time()、get_the_time()
the_time()用来获取并显示当前文章发布的时间,和上面几个函数类似,此函数也是只能在WordPress的大循环中使用。
该函数后面可以跟控制日期或时间格式的参数,常用的参数形式如下:
如的调用形式显示效果为:六月13, 2009(英文状态下显示June 13, 2009);
如的调用形式显示效果为:7:09 下午(英文状态下显示7:09 pm);
如的调用形式显示效果为:19:09。
事实上,除了使用the_time()函数之外,WordPress还提供了一个具有类似功能的get_the_time()函数。该函数除了不具有the_time()函数的显示功能之外,其余功能二者完全相同。使用get_the_time()函数时,如欲将获取的时间显示出来,需要使用专用语句。
下面,我们籍此机会来简单了解一下WordPress中时间的格式。在WordPress中,通常用于控制时间格式的有一下字符:l, F, j, S, Y, G, g, i, a等等,其详细意义如下:
l(小写L)用来显示一周之中每一天的名称,比如星期六,或者在英文中显示Saturday;
F用来显示月份名称,比如六月,或者June;
j用来显示一月之中的某一天,比如13;
Y用来以4位数字形式显示年份,使用y则以末两位数字显示年份,比如2009或09;
G, g, i, a等四个字符通常组合使用,如前例子,有两种形式:
g:i a以形如7:09 下午或7:09 pm的形式显示时间;
G:i以形如19:09的24小时进制形式显示时间。
S通常紧跟在j后面,表示是否在一月之中某天之后添加英文后缀(st, nd, th等)。