Wordpress常用函数

前段时间研究WP(WordPress),整理了一些WP的常用函数,对于一个要求不高的主题来说,这些函数足够了。
以后有时间再整理。
提示:使用Ctrl+F搜索你想找到功能或

本文主要参考了(无特殊说明,参考均来自WordPress 中文文档)

WordPress 中文文档
我爱水煮鱼-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()

迭代主循环

returntrue/false
参数:无
使用方法:参考have_posts()

the_permalink()

在循环函数(the_post())中返回当前URL,该标签必须在循环中,由于是动态生成的URL(每次循环返回不同),所以不能用于指定某一特定的文章,如果想指定到特定文章,使用get_permalink()并指明文章的ID

参数:无
returnstring,即当前循环的URL

the_title()

类似the_permalink(),在循环函数(the_post())中返回当前文章标题,该标签必须在循环中,如果想获取到特定文章,使用get_the_title()并指明文章的ID

参数:无
returnstring,即当前循环的标题

the_tags($before,$sep,$after)

循环列出文档标签,若没有,返回空

参数:都是字符串,且都是可选的,依次是标签之前,之间,之后显示什么内容
returnstring

<!-- 代码 -->
<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,在循环中不要使用
returnstring

<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 ); ?>

returnstring

single_post_title()

类似single_cat_title(),如果单页(栏目单页或文章页),显示或返回页面标题,只能在循环外使用

参数:同上
return:同上

wp_title ( string $sep = '»', bool $display = true, string $seplocation = '' )

显示或检索所有页面的网页标题

  • $sep 多个标题间间隔符,默认是»
  • $display 是否显示,默认true
  • $seplocation 显示文本方向,默认为空字符串,可用leftright

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() ?>


欢迎关注我的新博客:刘振的科技博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,600评论 18 139
  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 当给sq...
    xuningbo阅读 10,259评论 2 22
  • sqlmap用户手册 说明:本文为转载,对原文中一些明显的拼写错误进行修正,并标注对自己有用的信息。 ======...
    wind_飘阅读 2,033评论 0 5
  • 在上一个章节,我们已经创建了一个基础的Blog程序。现在我们将使用一些Dajngo高级功能,去实现一个完整的blo...
    金金刚狼阅读 3,575评论 1 12
  • 那年樱花树下 你曾对你心爱的女孩 许下一生诺言 风轻轻吹过 樱花花瓣飘落在女孩发间 少年撩开女孩的头发 樱花和女孩...
    夙殇阅读 238评论 0 12