前段时间研究WP(WordPress),整理了一些WP的常用函数,对于一个要求不高的主题来说,这些函数足够了。
以后有时间再整理。
提示:使用Ctrl+F搜索你想找到功能或
本文主要参考了(无特殊说明,参考均来自WordPress 中文文档)
更新于2015-11-06
函数
have_posts()
遍历WordPress,看看是否当前的查询有任何结果,返回false或true
一般与the_post()
配合使用以循环出文章列表
return:无
参数:无
使用方法:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<!-- code -->
<?php endwhile; ?>
<?php else : ?>
<!-- code -->
<?php endif; ?>
the_post()
迭代主循环
return:true/false
参数:无
使用方法:参考have_posts()
the_permalink()
在循环函数(the_post())中返回当前URL,该标签必须在循环中,由于是动态生成的URL(每次循环返回不同),所以不能用于指定某一特定的文章,如果想指定到特定文章,使用
get_permalink()
并指明文章的ID
参数:无
return:string
,即当前循环的URL
the_title()
类似
the_permalink()
,在循环函数(the_post())中返回当前文章标题,该标签必须在循环中,如果想获取到特定文章,使用get_the_title()
并指明文章的ID
参数:无
return:string
,即当前循环的标题
the_tags($before,$sep,$after)
循环列出文档标签,若没有,返回空
参数:都是字符串,且都是可选的,依次是标签之前,之间,之后显示什么内容
return:string
,
<!-- 代码 -->
<span><?php the_tags('标签:', ', ', ''); ?></span>
<!-- 返回内容 -->
<span>
标签:
<a href="http://127.0.0.1/wordpress/tag/%e5%85%9c%e5%85%9c/" rel="tag">兜兜</a>
,
<a href="http://127.0.0.1/wordpress/tag/%e5%93%88%e5%b8%82f/" rel="tag">哈市f</a>
</span>
edit_post_link($link, $before, $after, $id)
必须在循环中,如果登录并且有权限修改该文章,那么显示编辑链接
参数:都是字符串,都可选,1.默认为“编辑”,传入参数即可修改2.之前显示内容3.之后显示的内容4.文章的id,在循环中不要使用
return:string
,
<a class="post-edit-link" href="http://127.0.0.1/wordpress/wp-admin/post.php?post=1&action=edit">编辑</a>
the_time('string')
显示当前列表的时间
Formatting Date and Time
例子
F j, Y g:i a - November 6, 2010 12:50 am
F j, Y - November 6, 2010
F, Y - November, 2010
g:i a - 12:50 am
g:i:s a - 12:50:48 am
l, F jS, Y - Saturday, November 6th, 2010
M j, Y @ G:i - Nov 6, 2010 @ 0:50
Y/m/d \a\t g:i A - 2010/11/06 at 12:50 AM
Y/m/d \a\t g:ia - 2010/11/06 at 12:50am
Y/m/d g:i:s A - 2010/11/06 12:50:48 AM
Y/m/d - 2010/11/06
the_excerpt()
必须在循环中,摘要文章,如果没有在编辑文章页面添加描述,则取前55字符,且前55文字的HTML标签被去掉。
如果不在index.php(而在attachment.php或image.php中)则显示副标题。
注:官方文档说在描述之后显示[...],但是实际操作中没有
条件标签
用来决定页面满足什么条件时显示某些内容。
zh-cn:条件标签
is_home();//主页
isfront_page();//首页
is_category();//分类页
is_admin();//控制台页
is_single();//单页文章
is_page();//页面
is_tag();//标签
is_author();//作者
is_archive();//存档
is_search();//搜索页
is_404();//404页
is_feed();//feed订阅页
in_the_loop();//循环列表中
single_cat_title()
如果是分类或标签页,显示或返回页面标题,只能在循环外使用
参数:返回值之前,是否显示
<?php single_cat_title( $prefix = '', $display = true ); ?>
return:string
single_post_title()
类似
single_cat_title()
,如果单页(栏目单页或文章页),显示或返回页面标题,只能在循环外使用
参数:同上
return:同上
wp_title ( string $sep = '»', bool $display = true, string $seplocation = '' )
显示或检索所有页面的网页标题
- $sep 多个标题间间隔符,默认是
»
- $display 是否显示,默认
true
- $seplocation 显示文本方向,默认为空字符串,可用
left
或right
get_post_meta( int $post_id, string $key = '', bool $single = false )
如果是在文章页,返回原数据。如果不在,返回字符串
这个函数获取指定日志的指定key的自定义字段,WordPress 常用函数 / get_post_meta
参数:
-
$post_id
文章ID -
$key
选择需要显示的选项,默认为空字符串 -
$single
是否返回值
return:
<?php echo get_option( $show, $default ); ?>
一种从数据库中获得数据的函数。如果想要获得的数据不存在或者没有相关的值,将会返回“FALSE”。
参数:
获取选项的名称,默认为none
‘admin_email’ – 管理员的E-mail地址。
‘blogname’ – 网站title标题。
‘blogdescription’ – 网站描述.
‘blog_charset’ – 网站编码一般UTF-8。
‘date_format’ – 日期格式。
‘default_category’ – 文章默认分类。
‘home’ – 网站地址。
‘siteurl’ – wordpress的web地址。注: 与函数 get_bloginfo(‘siteurl’)不同,get_bloginfo(‘siteurl’)返回当前站地址, 但是这个选项等同于get_bloginfo(‘wpurl’);
‘template’ -当前主题名称
‘start_of_week’ -一星期开始设置
‘upload_path’ – 上传默认目录.
‘posts_per_page’ – 文章分页每页显示的数量.
‘posts_per_rss’ – RSS聚合显示的最新文章数量
默认: None
wp_nav_menu( $args );
显示在后台设置的一个导航栏
用法:*
<?php
$defaults = array(
'theme_location' => '',//用于在调用导航菜单时指定注册过的某一个导航菜单名,如果没有指定,则显示第一个。
'menu' => '',//ID,slug,菜单名
'container' => 'div',//包裹菜单(菜单父元素)的标签是什么,默认是div,接受false
'container_class' => '',//菜单父元素的class,默认menu-{menu slug}-container,例menu-主菜单-container,但是中文会被转义
'container_id' => '',//菜单父元素的id,默认none
'menu_class' => 'menu',//菜单的class,默认menu
'menu_id' => '',//菜单的id,默认menu-{menu slug}
'echo' => true,//是否显示,默认true
'fallback_cb' => 'wp_page_menu',//没有菜单时的回退,不知如何使用
'before' => '',//文本之前显示,在a之内
'after' => '',//文本之后显示
'link_before' => '',//之前,a之外
'link_after' => '',//之后
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',//使用字符串替换修改ul的class。,不知如何使用
'depth' => 0,//显示菜单的层级,默认为0,-1显示所有
'walker' => ''//自定义的遍历对象,调用一个对象定义显示导航菜单。不知如何使用
);
wp_nav_menu( $defaults );
?>
参数:
1.查找参数中的菜单ID或菜单名称,若没有
2.显示第一个非空的菜单 ,若没有
3.以wp_page_menu()显示,若没有
4.显示空
return:参考用法
wp_tag_cloud( $args )
显示云标签列表,其中的个数是由文章使用的次数
模板标签-wp_tag_cloud()
用法
<?php $args = array(
'smallest' => 8, //最小的标签(使用次数最少)显示大小为8
'largest' => 22,//最大的标签(使用次数最多)显示大小为22
'unit' => 'pt', //设置最大最小字体单位PT为单位,可以是任何css单位
'number' => 45, //最多显示45个,值为'0'时显示所有标签
'format' => 'flat',//以平面形式显示所有标签(标签之间用空格隔开)
'separator' => "\n",//显示标签之间的空格
'orderby' => 'name', //按名称为标签排序,使用次数'count'
'order' => 'ASC',//以升序排列,DESC降序,RAND随机
'exclude' => null, //不排除任何标签,将要被排除的标签(term_id)的ID,各ID用逗号隔开。如 'exclude=5,27'表示不显示term_id为5或27的标签。
'include' => null, //包括所有标签,与上一个相反
'topic_count_text_callback' => default_topic_count_text,//
'link' => 'view', //设置链接,允许编辑某个指定标签。edit,设置后直接跳转到编辑标签页
'taxonomy' => 'post_tag', //见参数
'echo' => true,//显示结果,或将结果保留在变量中
'child_of' => null, // see Note!
); ?>
参数:
format
<!-- 'format' => 'flat',-->
<a href="#" class="tag-link-10" title="1个话题" style="font-size: 12px;">兜兜1</a>
<a href="#" class="tag-link-10" title="1个话题" style="font-size: 12px;">兜兜2</a>
<!-- 'format' => 'list',-->
<ul class="wp-tag-cloud">
<li><a href="#" class="tag-link-10" title="1个话题" style="font-size: 12px;">兜兜1</a></li>
<li><a href="#" class="tag-link-10" title="1个话题" style="font-size: 12px;">兜兜2</a></li>
</ul>
<!-- 'format' => 'array',-->
函数以数组方式返回标签云
taxonomy
(字符串)(可选)用以生成云的分类法。
'post_tag' —— (默认值)将文章标签当作云的来源
'category' —— 用文章分类生成云
'link_category' —— 用链接分类目录生成云
return:参考用法
wp_get_archives( $args );
注get_archives( $args );
可能已经被替代
显示以日期为基础的归档列表。可以在任何地方使用
wp_get_archives 输出文章归档
用法
<?php $args = array(
'type' => 'monthly',//归档类型
'limit' => '',//文章数量
'format' => 'html',//归档输出格式
'before' => '',//之前显示的文字
'after' => '',//之后显示的文字
'show_post_count' => false,//是否显示文章数量
'echo' => 1,//是否显示
'order' => 'DESC'//排序方式
); ?>
参数:
type
归档类型设置
可选值:
- ‘yearly’ 按年
- ‘monthly’按月
- ‘daily’按日
- ‘weekly’按周
- ‘postbypost’罗列每一篇文章(以日期排序)
- ‘alpha’ 罗列每一篇文章(以文章名排序)
limit
文章数量限制,即归档的最大文章数量。
format
归档输出格式。
可选值:
- ‘html’ -以html代码格式输出,即一个 li 列表
- ‘option’ – 在 select 标签中以选择列表的形式输出
- ‘link’ – 在link标签中输出归档地址
- ‘custom’ – 自定义,即使用after和before来包裹每一个项目。
before
在每一条项目之前显示的文字,只在 format 被设置为’html’或’custom’时可用。
after
在每一条项目之后显示的文字,只在 format 被设置为’html’或’custom’时可用。
show_post_count
布尔值,是否显示文章数量,在 type 被设置为’postbypost’或’alpha’时不可用。
echo
布尔值,是否显示,不显示则返回给变量。
order
排列顺序
可选值
- ASC顺序
- DESC逆序,默认
return:
the_category( $separator, $parents, $post_id );
以链接形式显示指定文章的分类,该标签必须在循环中
the_category
参数:
- $separator 指定间隔符号,常用的有 (•)、(>)、( )、(->);
- $parents 分类显示方式,两个值multiple和single;multiple显示所有父分类,single只显示指定文章的父分类
- $post_id 文章的ID号;
return:
<?php the_category(' > ','multiple'); ?>
<a href="#">技术</a> > <a href="#" rel="category tag">JavaScript+jQuery</a> >
wp_list_categories( $args );
将分类以列表的形式显示为链接。
wp_list_categories(分类列表)
<?php
$args = array(
'show_option_all' => 'single.php',//如果样式设置为list,且该值为非空字符串,8不知道怎么用,应该是连接到所有分类的一个页面的链接
'orderby' => 'name',//排列顺序
'order' => 'ASC',//升序降序
'style' => 'list',//显示方式,可使用list或none
'show_count' => 1,//显示文章数量
'hide_empty' => 0,//隐藏分类下没有文章的分类?
'use_desc_for_title' => 1,//是否将分类描述作为分类链接中的 title 属性,在后台里面设置
'child_of' => 0,//只显示某一分类的子分类,数值为分类ID
'feed' => '',//显示订阅本分类的RSS的文字
'feed_type' => none,//字符串(官方文档就这一句)
'feed_image' => '',//以图片替换'feed'属性:订阅文字
'exclude' => '',//排除一个或多个分类。使用逗号分隔每个分类的ID。参数 include 必须为空。
'exclude_tree' => '',//排除分类树。使用逗号分隔每个分类的ID。参数 include 必须为空。
'include' => '',//只显示特定的分类,使用逗号分隔每个分类的ID
'hierarchical' => 1,//以层级来显示分类的子分类。默认为 true(在分类的下面显示它们的子分类)。有效值:
'title_li' => __( '列表的标题' ),//设置列表的标题
'show_option_none' => __( '' ),//
'number' => null,//设置显示的分类数量
'echo' => 1,//显示结果或保存在一个变量里
'depth' => 0,//显示分类的深度(即显示多少层的子分类)。默认值为 0(显示所有分类和子分类)。
'current_category' => 0,//后跟分类ID号?
'pad_counts' => 1,//计算包括子分类的链接或文章数,设置后,子分类里面的文章个数添加到父分类中
'taxonomy' => 'category',//
'walker' => null//
);
wp_list_categories( $args );
?>
参数:
orderby
- ID
- name - 默认
- slug
- count
- term_group
return:
get_search_form( $echo );
使用searchform.php主题文件中显示搜索表单。
参数:
return:
paginate_links( $args );
用来检索归档后的页面分页链接,可在任何区域使用
使用方法:
<?php echo paginate_links( $args ); ?>
参数:
return:
<?php bloginfo(''); ?>
参数:
* name:输出你的博客名称
* description:输出博客描述
* html_type:显示HTML内容类型
* wpurl或url:返回网站的URL,现在不知道区别
* admin_email:作者的Email
* charset:返回网站所用的编码格式
* language:返回网站所用的语言
* stylesheet_url:模板下style.css的绝对地址
* template_url:模板的绝对地址
* rss2_url:返回网站的RRS订阅地址
return:字符串
等待学习
header.php文件第23-52行描述的内容
<?php wp_head() ?>与<?php wp_footer(); ?>
<?php wp_list_pages(); ?>
<?php the_content(); ?>
<?php comments_popup_link('0 条评论', '1 条评论', '% 条评论', '', '评论已关闭'); ?>
<?php get_header(); ?>
<?php get_sidebar() ?>
<?php get_footer() ?>
欢迎关注我的新博客:刘振的科技博客