鹿泽鹿泽  2024-06-06 00:04:31 鹿泽笔记 隐藏边栏  0 

这次需要用到的是wp_dashboard_setup这个钩子,官方的描述是,用于添加或者删除WordPress仪表板的相关选项。当然只有这个钩子还不够,我们需要添加小工具到仪表盘,所以还需要借助 wp_add_dashboard_widget() 这个函数。

实现代码如下,将下面代码加入到主题的functions.php中后,打开后台仪表盘页面即可查看效果。

//添加仪表盘面板
function guihet_add_dashboard_widgets() {
    wp_add_dashboard_widget('custom_help_widget', '自定义信息', 'custom_dashboard_guihet');
}
add_action('wp_dashboard_setup', 'guihet_add_dashboard_widgets' );
//面板内容
function custom_dashboard_guihet() {
    global $wpdb;
    $todate = date("Y-m-d");
    $sql = "SELECT COUNT(*) AS num FROM `wp_users` WHERE SUBSTRING(`user_registered`,1,10)='" . $todate . "'";
    $results = $wpdb->get_results($sql);
    //$sqlb = "SELECT SUM(`meta_value`) as num FROM `wp_postmeta` WHERE `meta_key`='views'"; //自定义字段
    echo '<ul>';
    echo '<li>今日注册用户数:'.$results[0]->num.'</li>';
    //echo '<li>文章阅读总数:'.$wpdb->get_results($sqlb)[0]->num.'</li>';
    echo '</ul>';
}

wp_users是用户数据表,由于不同主题的浏览阅读存储字段名不一致,所以需要自行修改。wp_postmeta的表前缀不一样的也要改,views是存储字段名。

上面先是使用wp_dashboard_setup这个钩子挂载guihet_add_dashboard_widgets函数,用来添加小工具。在其中又使用了wp_add_dashboard_widget函数添加了一个名叫 custom_dashboard_guihet 的回调函数,用来处理小工具中显示的内容。

如果要跟站长一样要获得今日登录用户数量,需要先添加一个字段用来存储用户登录的时间,或者用其它办法也可以。

1、添加上次登录字段

add_filter('user_contactmethods', 'dmd_add_contact_fields');
function dmd_add_contact_fields($contactmethods)
{
    $contactmethods['last_login'] = '上次登录';
    return $contactmethods;
}

2、自动记录登录时间

function insert_last_login($login)
{
    global $user_id;
    $user = get_userdatabylogin($login);
    update_user_meta($user->ID, 'last_login', current_time('mysql'));
}
add_action('wp_login', 'insert_last_login');

3、获取今日登录用户数量

global $wpdb;
$todate = date("Y-m-d");
$querystr = "SELECT count(*) as num FROM `wp_usermeta` WHERE `meta_key`='last_login' AND SUBSTRING(`meta_value`,1,10)='" . $todate . "'";
$results = $wpdb->get_results($querystr);
echo  $results[0]->num;

把以上输出整合到回调函数即可。

1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505