首页 > 其他分享 >wordpress 开发相关函数

wordpress 开发相关函数

时间:2022-10-11 17:55:40浏览次数:51  
标签:函数 id 开发 wordpress 文章 query post array 页面

首页判断

is_home()

is_front_page()

当你的首页不是默认的index.php的时候,而是在后台指定了一个page页面。这种情况下is_home()会失效,也就是说这样子的情况下就不能再用is_home()来判断。

is_front_page()是判断当前页是不是指定的首页,我们在上面描述的情况下需要的就是这个函数。

<?php if ( (is_home() || is_front_page()) && !is_paged() ) {?>
我只会在首页显示
<?php} ?>

 

index.php : 主页模板

archive.php : Archive/Category模板

404.php : Not Found 错误页模板

comments.php : 留言/回复模板

footer.php : Footer模板

header.php : Header模板

sidebar.php : 侧栏模板

page.php : 内容页(Page)模板

single.php : 内容页(Post)模板

searchform.php : 搜索表单模板

search.php : 搜索结果模板

基本条件判断
is_home() : 是否为主页

is_single() : 是否为内容页(Post)

is_page() : 是否为内容页(Page)

is_category() : 是否为Category/Archive页

is_tag() : 是否为Tag存档页

is_date() : 是否为指定日期存档页

is_year() : 是否为指定年份存档页

is_month() : 是否为指定月份存档页

is_day() : 是否为指定日存档页

is_time() : 是否为指定时间存档页

is_archive() : 是否为存档页

is_search() : 是否为搜索结果页

is_404() : 是否为 “HTTP 404: Not Found” 错误页

is_paged() : 主页/Category/Archive页是否以多页显示

Header部分常用到的PHP函数
bloginfo (’name’); //博客名称(Title)

bloginfo (’stylesheet_url’); //CSS文件路径

bloginfo (’pingback_url’); //PingBack Url

bloginfo (’template_url’); //模板文件路径

bloginfo (’version’); // WordPress版本

bloginfo (’atom_url’); // Atom Url

bloginfo (’rss2_url’); // RSS 2.o Url

bloginfo (’url’); //博客 Url

bloginfo (’html_type’); // 博客网页Html类型

bloginfo (’charset’); //博客网页编码

bloginfo (’description’); //博客描述

wp_title(); //特定内容页(Post/Page)的标题

_e(’Message’); //输出相应信息

wp_register(); //显示注册链接

wp_loginout(); //显示登录/注销链接

<!––next page––> : 将当前内容分页

<!––more––> : 将当前内容截断,以不在主页/目录页显示全部内容

timer_stop(1); //网页加载时间(秒)

echo get_num_queries(); //网页加载查询量

文章或者类型判断
is_single() 判断是否是具体文章的页面

is_single(’17′) 判断是否是具体文章(id=17)的页面

is_single(’Beef Stew’) 判断是否是具体文章(标题判断)的页面

is_single(’beef-stew’) 判断是否是具体文章(slug判断)的页面

comments_open() 是否留言开启

 

wordpress 的主循环

 

 

pings_open() 是否开启ping

is_page() 是否是页面

is_page(’42′) 同single,id判断,即是否是id为42的页面

is_page(’About Me’) title判断

is_page(’about-me’) slug判断

is_category() 是否是分类

is_category(’6′) 同single,id判断,即是否是id为6的分类

is_category(’Cheeses’) title判断

is_category(’cheeses’) slug判断

in_category(’5′) 判断当前的文章是否属于分类5

is_author() 将所有的作者的页面显示出来

is_author(’1337′) 显示author number为1337的页面

is_author(’Elite Hacker’) 通过昵称来显示当前作者的页面

is_author(’elite-hacker’)

is_date()

is_year()

is_month()

is_day()

is_time()

is_archive() 判断当前是否是归档页面

is_search() 判断是否是搜索

is_404() 判断页面是否404

is_paged() 判断是否翻页,比如你当前的blog是http://domain.com显示http://domain.com?paged=2的时候,这个判断将返回真,通过这个函数可以配合is_home来控制某些只能在首页显示的界面,例如: if (is_home() && !is_paged() )

is_attachment() //判断是否是附件
 

wordpress 的主循环

<?php if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        the_title();
    endwhile;
endif; ?>

基础用法

<?php
// WP_Query 所使用的参数
$args = array( 'posts_per_page' => 3 );
 
// 调用 WP_Query 新建文章查询.
$the_query = new WP_Query( $args );
 
if ( $the_query->have_posts() ) :
    // 开始循环
    while ( $the_query->have_posts() ) : $the_query->the_post();
        the_title();
        the_excerpt();
    // 结束循环
    endwhile;
else:
    _e( '抱歉,未找到您需要的文章。', 'textdomain' );
endif;
 
wp_reset_postdata();
?>

 

 

 

<?php
/**
* WordPress 查询综合参考
*
* 官方文档: http://codex.wordpress.org/Class_Reference/WP_Query
* 源代码: http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/query.php
*/
 
$args = array(
 
/**
* 作者参数 - 显示某些作者发表的文章
*/
'author' => '1,2,3,' //(整数) - 作者ID [使用减号 (-) 排除某个作者 ID, 如: 'author' => '-1,-2,-3,']
'author_name' => 'luetkemj', //(字符串) - 使用 'user_nicename' 用户昵称,(不是名称)
 
/**
* 分类参数 - 显示某个分类里面的文章
*/
'cat' => 5,//(整数) - 分类id
'category_name' => 'staff', 'news', //(字符串) - 分类别名(不是名称)
'category__and' => array( 2, 6 ), //(数组) - 分类id
'category__in' => array( 2, 6 ), //(数组) - 分类id
'category__not_in' => array( 2, 6 ), //(数组) - 分类id
 
/**
* 标签参数 - 显示含有某些标签的文章
*/
'tag' => 'cooking', //(字符串) - 标签别名
'tag_id' => 5, //(整数) -标签id
'tag__and' => array( 2, 6), //(数组) - 标签id
'tag__in' => array( 2, 6), //(数组) - 标签id
'tag__not_in' => array( 2, 6), //(数组) - 标签id
'tag_slug__and' => array( 'red', 'blue'), //(数组) - 标签别名
'tag_slug__in' => array( 'red', 'blue'), //(数组) - 标签别名
 
/**
* 自定义分类法参数 - 显示某些自定义分类法里面的文章
* 重要提示: tax_query 使用多维数组
* 这种查询结构允许我们查询多个自定义分类法
*/
'tax_query' => array( //(数组) - 使用自定义分类法查询参数 (3.1及以后版本可用).
  'relation' => 'AND', //(字符串) - 可用的值有 'AND' 或 'OR' 和 SQL 的 JOIN 作用是相同的
  array(
    'taxonomy' => 'color', //(字符串) - 自定义分类法
    'field' => 'slug', //(字符串) - 使用别名还是分类作为查询条件 ('id' 或 'slug')
    'terms' => array( 'red', 'blue' ), //(整数/字符串/数组) - 自定义分类法分类条目
    'include_children' => true, //(布尔值) - 是否包含自分类,默认为真
    'operator' => 'IN' //(字符串) - 测试条件,可用值为 'IN', 'NOT IN', 'AND'.
  ),
  array(
    'taxonomy' => 'actor',
    'field' => 'id',
    'terms' => array( 103, 115, 206 ),
    'include_children' => false,
    'operator' => 'NOT IN'
   )
),
 
/**
* 文章 & 页面参数- 基于文章或页面参数显示文章
*/
'p' => 1, //(整数) - 文章id
'name' => 'hello-world', //(字符串) - 文章别名
'page_id' => 1, //(整数) - 页面id
'pagename' => 'sample-page', //(字符串) - 页面别名
'pagename' => 'contact_us/canada', //(字符串) - 用斜杠‘/’分割的父页面别名/子页面别名来显示子页面
'post_parent' => 1, //(整数) - 页面id,只返回子页面,只对有子页面的页面有效
'post__in' => array(1,2,3), //(数组) - 需要显示的文章的id
'post__not_in' => array(1,2,3), //(数组) - 需要排除的文章的id
//注意:不能在同一个查询里同时使用 'post__in' 和 'post__not_in'
 
/**
* 文章类型 & 状态参数 - 显示某些文章类型里面的文章
*/
'post_type' => array( //(字符串/ 数组) - 文章类型,根据文章类型获取文章,默认为'post'
    'post', // - 文章
    'page', // - 页面
    'revision', // - 文章版本
    'attachment', // - 附件,默认 WP_Query 设置了发布状态为 'post_status'=>'published', 但是附件默认为 'post_status'=>'inherit',所以你需要设置状态为 'inherit' 或'any'.
    'my-post-type', // - 自定义文章类型 (例如:movies)
),
'post_status' => array( //(字符串 / 数组) - 使用文章状态,根据文章状态获取文章,默认为 'publish'
    'publish', // - 已发布的文章或页面
    'pending', // -等待复审的文章
    'draft', // - 处于草稿状态的文章
    'auto-draft', // - 自动保存为草稿的文章
    'future', // - 定时发布的文章
    'private', // - 未登录用户不能查看的私有文章
    'inherit', // - 版本. 具体参考 get_children.
    'trash' // - 回收站中的文章 (2.9和以后的版本可用).
),
 
//注意:The 'any' 关键字可以用在 post_type 和 post_status 查询,但是不能在数组中使用
'post_type' => 'any', // - 获取所有文章类型里面的文章,除了版本和文章类型参数'exclude_from_search'设置为true的文章类型
'post_status' => 'any', // - 获取处于所有文章状态的文章,除了版本和文章类型参数'exclude_from_search'设置为true的文章类型
 
/**
* 分页参数
*/
'posts_per_page' => 10, //(整数) - 每页显示的文章数量 (2.1和以后的版本可用), 使用'posts_per_page'=-1 显示所有文章,如果查询处于订阅源中,WordPress用 'posts_per_rss' 选项覆盖了这里的设置,需要使用这个限制,尝试使用 'post_limits' 过滤器,或使用 'pre_option_posts_per_rss'过滤器返回 -1
'posts_per_archive_page' => 10, //(整数) - n每页显示的文章数量 - 只在存档页面使用,在存档页面和搜索结果页面覆盖了 showposts 和 posts_per_page 参数
'nopaging' => false, //(布尔值) - 在一页显示所有文章或使用分页,默认值为 'false', 使用分页
'paged' => get_query_var('paged'), //(整数) - 页数,分页时显示第几页
//注意:使用 get_query_var('page'); 如果查询在设置为首页的页面模版中工作,查询参数 'page' 拥有文章分页或内容中使用 <!--nextpage--> 快捷代码的分页。
 
/**
* 偏移参数
*/
'offset' => 3, //(int) - 跳过的文章数量
 
/**
* 排序 & 排序方式参数 - 对获取的文章进行排序
*/
'order' => 'DESC', //(字符串) - 设置 'order_by' 参数升序或降序排列. 默认为'DESC'.
//Possible Values:
//'ASC' - 升序排列,从小到大 (1, 2, 3; a, b, c).
//'DESC' - 降序排列,从大到小 (3, 2, 1; c, b, a).
'orderby' => 'date', //(字符串) - 排序依据. 默认为 'date'.
//可用的参数有://
//'none' - 不排序 (2.8和以后的版本可用)
//'ID' - 根据ID排序,注意ID是大写的
//'author' - 根据作者排序
//'title' - 根据标题排序
//'date' - 根据发表时间排序
//'modified' - 根据最后修改时间排序
//'parent' - 根据父页面排序
//'rand' - 随机排序
//'comment_count' - 根据评论数量排序 (2.9和以后的版本可用).
//'menu_order' - 根据页面序号排序. 通常在页面中使用 (编辑页面时有一个页面序号的字段) 和附件 ( 插入 / 上传媒体相册对话框中的数字), 但是不能对文章类型 'menu_order' 使用数字值 (默认都为 0).
//'meta_value' - 注意'meta_key=keyname' 必须也出现在查询中. 注意排序是按照字母表顺序进行的。(如:words),但是数字排序可能会有问题 (如:1, 3, 34, 4, 56, 6, etc, 而不是你希望的:1, 3, 4, 6, 34, 56)。
//'meta_value_num' - 根据数字meta值排序 (2.8和以后的版本中可用). 同时需要注意'meta_key=keyname' 也要在查询中声明。这个值和上面说明的 'meta_value' 一样,只不过值允许使用数字排序。
//'title menu_order' - 同时使用 menu_order 和 title 排序 更多信息请参考:http://wordpress.stackexchange.com/questions/2969/order-by-menu-order-and-title
//'post__in' - 使用 post__in 数组中制定的 ID 顺序 (3.5以后的版本中可用).
 
/**
* 置顶文章参数 - 显示或忽略置顶文章
*/
'ignore_sticky_posts' => false, //(布尔值) - 是否忽略置顶文章,默认为假不忽略. 在返回文章的开头忽略/排除置顶文章,但是置顶文章还是会在自然查询中列出。
//注意:关于置顶文章的更多信息,请参考:http://codex.wordpress.org/Class_Reference/WP_Query#Sticky_Post_Parameters
 
/**
* 时间参数 - 显示某个时间段内的文章
*/
'year' => 2012, //(int) - 4 个数字的年份 (如:2011)
'monthnum' => 3, //(int) - 月份数字 (从 1 到 12)
'w' => 25, //(int) - 一年中的第几周 (从 0 到 53), 使用 MySQL WEEK 命令,此模式和"start_of_week" 选项相关
'day' => 17, //(int) - 月中的天数 (从 1 到 31)
'hour' => 13, //(int) - 小时 (从 0 到 23).
'minute' => 19, //(int) - 分钟 (从 0 到 60).
'second' => 30, //(int) - 秒 (从 0 到 60).
 
/**
* 自定义字段参数 - 显示拥有某个自定义字段的文章
*/
'meta_key' => 'key', //(字符串) - 自定义字段的键
'meta_value' => 'value', //(字符串) - 自定义字段的值
'meta_value_num' => 10, //(数字) - 自定义字段的值
'meta_compare' => '=', //(字符串) - 测试'meta_value'的操作。可用的值有'!=', '>', '>=', '<', or ='. 默认为 '='.
'meta_query' => array( //(数组) - 自定义字段参数 (3.1和以后的版本可用).
array(
    'key' => 'color', //(字符串) - 自定义字段的键
    'value' => 'blue', //(字符串/数组) - 自定义字段的值 (注意:数组的支持仅限于一个比较值: 'IN', 'NOT IN', 'BETWEEN', or 'NOT BETWEEN')
    'type' => 'CHAR', //(字符串) -自定义字段类型,可用的值有:'NUMERIC', 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED',默认为    'CHAR'
    'compare' => '=' //(字符串) - 测试的操作,可用的值有: '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN'. 默认为:'='
),
array(
    'key' => 'price',
    'value' => array( 1,200 ),
    'compare' => 'NOT LIKE'
)
 
/**
* 权限参数 - 显示已发布文章,如果用户有合适的权限,同样现实私有文章:
*/
'perm' => 'readable' //(字符串) 可用的值有:'readable', 'editable' (可能还有其他可用的值我没有测试)
 
/**
* 与缓存相关的参数
*/
'no_found_rows' => false, //(布尔值) 默认为假,为了分页,WordPress 在大多数查询中使用 SQL_CALC_FOUND_ROWS 查询, 即使你不需要分页,通过设置这个参数为真,我们告诉了了WordPress不要查询数据总行数,从而降低数据库负载,如果设置了这个参数为真,分页将不工作,更多信息请参考:http://flavio.tordini.org/speed-up-wordpress-get_posts-and-query_posts-functions
'cache_results' => true, //(布尔值) 默认为真
'update_post_term_cache' => true, //(布尔值) 默认为真
'update_post_meta_cache' => true, //(布尔值) 默认为真
//注意:缓存是个好东西,通常不建议设为假,更多信息请参考:http://codex.wordpresorg/Class_Reference/WP_Query#Permission_Parameters
 
/**
* 搜索参数
*/
's' => $s, //(字符串) - 传递搜索变量到搜索功能,更多信息请参考: http://www.wprecipes.com/how-to-display-the-number-of-results-in-wordpress-search
'exact' => true //(布尔值) - 只匹配完整的titles/posts的信号 - 默认值为假,更多信息请参考:https://gist.github.com/2023628#gistcomment-285118
'sentence' => true //(布尔值) - 进行短语搜索的信号-默认值为假,更多信息请参考:https://gist.github.com/2023628#gistcomment-285118
 
/**
* 文章字段参数
*/
//关于文章字段参数信息,请参考http://codex.wordpress.org/Class_Reference/WP_Query#Post_Field_Parameters
 
/**
* 过滤器
*/
//关于过滤器的更多信息,请参考:http://codex.wordpress.org/Class_Reference/WP_Query#Filters
 
);
 
$the_query = new WP_Query( $args );
 
// 循环开始
if ( $the_query->have_posts() ) :
    while ( $the_query->have_posts() ) : $the_query->the_post();
        // 输出内容
    endwhile;
endif;
 
// 重置文章数据
wp_reset_postdata();
 
?>

 

调用例子

<?php
 // 1.用于查询的参数或者参数集合
$args = array(
  'post_type'=>'post'
);
// 2.查询
$query=new WP_Query($args);
 
// 3.判断查询的结果,有内容则循环
if($query->have_posts()):while($query->have_posts()):$query->the_post();
?>
 
//输出循环结构
<?php the_title();?>
 
<?php
endwhile;
endif;
// 4.重置请求数据
wp_reset_postdata();
?>

调用 id 为 36 的单篇文章的新建查询


$args = array(
  'p'=>'36'
);
$query = new WP_Query( $args  );

等同于

$query = new WP_Query( 'p=36' );

调用指定 page 页面或 category 分类页可以用类似的写法
$query = new WP_Query( 'cat=9' );//调用指定分类的文章
$query = new WP_Query( 'page_id=7' );//指定page页面


调用 id 为 34、32、30 的文章
$args = array(
  'post__in'=>array(34,32,30)
);


post__in 默认调用的是文章信息,如果要调用页面,则需要指定类型
$args = array(
'post_type'=>'page',
'post__in'=>array(3)
);

调用除了 id 为 3 以外的文章
$args = array(
'post__not_in'=>array(3)
);

调用全部文章
$query = new WP_Query( 'post_type=post' );

调用全部页面

$query = new WP_Query( 'post_type=page' );

 

 

 

 

 

 

标签:函数,id,开发,wordpress,文章,query,post,array,页面
From: https://www.cnblogs.com/fslnet/p/16780054.html

相关文章

  • 函数名的多种用法及装饰器
    目录global与nonlocal函数名的多种用法闭包函数装饰器简介装饰器推导流程装饰器模板装饰器语法糖作业global与nonlocalmoney=666defindex():globalmoneym......
  • mysql 时间函数
    时间格式转换标准时间格式:2017-05-1211:41:55--字符串转换为日期函数:str_to_date(str,format)SELECTSTR_TO_DATE('06.05.201719:40:30','%m.%d.%Y%H:%i:%s');--......
  • Phoenix不支持having函数的情况(举例)
     同一sql语句,在mysql可以查询成功,查询出最大“平均值”,以及对应的sno;在Phoenix会报错,提示sno不属于聚和函数也不在groupby里面,aggregatemaynotcontainscolumnsnot......
  • 【新技术】不用开发者账号申请ios证书真机调试
     虽然xcode现在可以免证书进行测试了,但众多跨平台开发者,如果还没注册苹果开发者账号。想安装到自己非越狱手机测试是无能为力了。不过新技术来了,只需要普通免费的......
  • 开发常用的小工具网站
     一、常见办公文档之间的转换网址:https://www.aconvert.com/cn/这是一个我找了很久才发现的网站,里面包含有:办公文档,图片格式,音频格式,视频格式之间的转换,还包含......
  • 立体相机开发|几何感知的实例分割
    点击上方“3D视觉工坊”,选择“星标”干货第一时间送达论文下载:​​http://www-scf.usc.edu/~choyingw/works/GAIS-Net/WSAD/CVPRW_CameraReady.pdf​​代码下载:​​https://......
  • qt 容器 函数指针
    private:typedefvoid(MainWindow::*pfunc)();QHash<QString,pfunc>func_map_enter;voidMainWindow::init_qmap(void){func_map_enter.insert("page_n......
  • android开发apk安装失败对应的错误码以及原因
    android开发apk安装失败对应的错误码以及原因代码在PackageManager.java系统类里中文意思可参考:https://www.cnblogs.com/cwfsoft/p/11776094.html/***@hide 未知*......
  • wordpress wp_insert_post插入文章iframe被自动过滤iframe无法插入iframe消失
    add_filter('wp_kses_allowed_html','esw_author_cap_filter',1,1);functionesw_author_cap_filter($allowedposttags){ if(!current_user_can('publish_posts'......
  • python中items()函数作用
    参考链接:https://www.runoob.com/python3/python3-att-dictionary-items.htmlhttps://blog.csdn.net/weixin_43505418/article/details/115407835......