博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wordpress wp_list_authors作者函数和扩展
阅读量:6690 次
发布时间:2019-06-25

本文共 3051 字,大约阅读时间需要 10 分钟。

hot3.png

wp_list_authors ()默认参数值

false,'exclude_admin' => true,'show_fullname' => false,'hide_empty' => true,'echo' => true,'feed' => ,'feed_image' => ,'style' =>  list,'html' => ); ?>

optioncount(boolean) 显示作者文章数。1 (true) 0 (false – 默认)

exclude_admin(boolean) 剔除admin。 1 (true – 默认) 0 (false)

 show_fullname (boolean) 显示作者全名。 默认显示作者昵称。 1 (true) 0 (false – 默认) 

hide_empty (boolean) 隐藏尚未发表文章的作者。 1 (true – 默认) 0 (false)

 feed (string) 链接到作者 RSS feed 的显示文字。默认不显示。 

feed_image (string) 链接到作者 RSS feed 的图片的目录和文件名。如果定义了 feed_image,将会覆盖 feed 定义的文字。 

""右边栏作者列表的调用

扩展功能:

 1. 输出文章最多的作者,并按文章数量排序;

2. 自定义输出作者的个数。

修改的内容:

1. 为 wp_list_authors 函数增加两个控制变量:limited 和 order

$defaults = array(  'optioncount' => false, 'exclude_admin' => true,  'show_fullname' => false, 'hide_empty' => true,  'feed' => '', 'feed_image' => '', 'feed_type' => '', 'echo' => true,  'limited' => 5, 'order' => 'DESC');

重新构建查询语句

/** @todo Move select to get_authors(). */$authors = $wpdb->get_results("SELECT DISTINCT u.ID, u.user_nicename, COUNT( p.ID ) AS count from $wpdb->users AS u, $wpdb->posts AS p " . ($exclude_admin ? "WHERE u.user_login <> 'admin' AND " : 'WHERE ') . "p.post_author = u.ID AND p.post_type = 'post' AND ( p.post_status = 'publish' OR p.post_status = 'private') GROUP BY p.post_author ORDER BY count " . $order . ", display_name ASC" . ( ($limited >= 0) ? ( ' LIMIT ' . $limited ) : '') );
扩展参数:
limit(int) 输出作者数目。 5 ( 默认) 0 (显示全部作者)

order(string) 排序方式。  DESC (降序 – 默认)  ASC (升序 – 显示最不活跃的作者)

用法:

您可以将 wp_list_authors 复制到主题文件的functions.php 中进行修改,并更换函数名称,比如:most_active_authors,在需要显示的位置调用这个函数就可以了。如:

显示文章最多的前10名作者、文章数量:

显示前5名最不活跃的作者,不显示文章数量:

wp_list_authors 函数位于 wp-includes 目录下的 author-template.php 文件中。

附:模板标签函数the_author_meta

<?php the_author_meta( $field, $userID ); ?>

//参数说明
//$field(字符串)将要显示的用户信息的字段名称(这些在数据库中都可以找到)。常用到的有:
user_login(用户登录名) 
user_pass(用户登录密码) 
user_nicename(用户昵称) 
user_email(用户邮箱地址) 
user_url(用户网站地址) 
user_registered(用户注册时间) 
user_status(用户状态) 
display_name(作者显示的名称) 
nickname(作者昵称) 
first_name(作者名字) 
last_name(作者姓氏) 
description(作者描述) 
user_level(用户等级) 
user_firstname(用户名字) 
user_lastname(用户姓氏) 
user_description(用户描述) 
ID(用户ID值) 

应用实例

<?php  echo the_author_meta( 'description' ); ?>//获取作者的描述内容

<?php  echo the_author_meta( 'user_email' ); ?>//获取作者的邮箱地址

注意事项

该函数如果在文章主循环(Loop)中,则不必指定作者的ID值,标签所显示的就是当前文章作者的内容。如果在主循环(Loop)外,则需要指定用户ID值。

获取信息的函数
另一个函数get_the_author_meta()。

 <?php get_the_author_meta( $field, $userID ); ?> 

该函数的参数和上面提到的函数有很多共通之处。根据英文名字也容易明白参数含义
  $field 
    (string) Field name for the data item to be returned. Valid values:
        user_login
        user_pass
        user_nicename
        user_email
        user_url
        user_registered
        user_activation_key
        user_status
        display_name
        nickname
        first_name
        last_name
        description
        jabber
        aim
        yim
        user_level
        user_firstname
        user_lastname
        user_description
        rich_editing
        comment_shortcuts
        admin_color
        plugins_per_page
        plugins_last_view
        ID 

$userID 

    (integer) If a user ID is passed to the function, it will return data for the specified

转载于:https://my.oschina.net/happysha/blog/97859

你可能感兴趣的文章
数据库读写分离
查看>>
社交是微信营销
查看>>
2008 R2 证书服务器应用详解
查看>>
hive 动态分区太多问题
查看>>
Windows Server 2008 RemoteApp(二)---部署激活远程桌面授权服务器
查看>>
读取日志文件开发总结
查看>>
IOS --React Native
查看>>
Linux CPU
查看>>
Linux/Centos ntp时间同步,联网情况和无网情况配置
查看>>
初级网络运维工程师比赛题目
查看>>
跨交换机实现vlan实验报告
查看>>
jquery easyui滚动条部分设置介绍
查看>>
cannot find -lxxx问题
查看>>
预防云端开源项目打包 Redis Labs再更改模块
查看>>
超惊人!去年发生的身分外泄安全事件是2017的4倍
查看>>
oracle sqlplus免安装的配置instantclient-basiclite
查看>>
Java开发GUI之选择列表
查看>>
一、分布式商城架构逻辑图
查看>>
机器人是如何完成避障的?机器人避障解决方案解读
查看>>
通过错误堆栈信息和源码分析错误来源
查看>>