WordPress网站信息统计代码总结

来源:互联网 发布:4g流量3g网络可以用吗 编辑:程序博客网 时间:2024/05/17 22:30

获取文章(post)总数

获取文章总数应该使用WordPress API中wp_count_posts()函数,通常能使用API获取的信息,就不要直接去查询,除非使用API实现资源消耗太大。

1
2
3
4
5
6
7
8
9
$count_posts= wp_count_posts();
$published_posts= $count_posts->publish;//已发布文章的总数
$future_posts= $count_posts->future;//定时发布的文章(尚未发布)总数
$draft_posts= $count_posts->draft;//草稿总数
$pending_posts= $count_posts->pending;//等待复审的文章的总数
$private_posts= $count_posts->private;//私密文章的总数
$trashed_posts= $count_posts->trash;//回收站中文章的总数
$auto_draft= $count_posts->{'auto-draft'};//自动草稿总数
$inherit= $count_posts->inherit;//文章修订版(revisions)的总数

关于自动草稿,可以阅读这篇文章。

计算文章总数时剔除某些分类下的文章

如果统计时想剔除某些分类下的文章,可以这样,假设计算时不想算ID为5的分类下的文章,注意,如果该分类还有子分类,那么子分类也将被剔除,代码如下。

1
2
$total_posts= newWP_Query( "posts_per_page=1&cat=-5");
echo'文章总数:'.$total_posts->found_posts;

或者直接用SQL查询语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
global$wpdb;
$exclude_ids= '5';
$sql= <<<SQL
SELECT  COUNT(*)
FROM  {$wpdb->posts}
WHERE 1=1
    AND post_type = 'post'
    AND ( post_status = 'publish'OR post_status = 'private')
    AND {$wpdb->posts}.ID NOT IN (
      SELECT object_id
      FROM$wpdb->term_relationships
      WHERE term_taxonomy_id IN (
        SELECT term_taxonomy_id
        FROM$wpdb->term_taxonomy
        WHERE taxonomy = 'category'
        AND ( term_id IN( {$exclude_ids} ) OR parent IN ( {$exclude_ids} ) )
      )
    )
SQL;
$numposts= $wpdb->get_var($sql);
echo'文章总数:'.$numposts;

这两种方法消耗资源都不多。

计算文章总数时剔除某些标签下的文章

方法与剔除分类相同,例如计算时剔除ID为66的标签下的所有文章

1
2
$total_posts= newWP_Query(  array('tag__not_in'=> array( 66 ), 'posts_per_page'=> 1 ));
echo'文章总数:'.$total_posts->found_posts;

置顶文章总数

1
2
$total_posts= newWP_Query( array('posts_per_page'=> 1,'post__in' => get_option( 'sticky_posts') );
echo'置顶文章总数:'.$total_posts->found_posts;

今日发布的新文章总数

1
2
3
$today= getdate();
$total_posts= newWP_Query( 'year='. $today["year"] . '&monthnum='. $today["mon"] . '&day='. $today["mday"] . '&posts_per_page=1');
echo'今日发布的新文章数:'.$total_posts->found_posts;

获取页面(Page)总数

1
2
3
4
$count_posts= wp_count_posts('page');
$published_posts= $count_posts->publish;//已发布页面的总数
...
//可以获取的信息与post总数相同,请参考第一段代码

获取自定义类型文章的总数

wp_count_posts()第一个参数是post_type,post_type既可以是post、page,也可以是用户自定义的文章类型,要获取某个custom post type总数,只要传递custom post type的名称即可。例如,要获取名为movie的custom post type总数

1
$count_posts= wp_count_posts('movie');

可以获取的信息与post相同,请参考第一段代码

获取评论统计信息

使用wp_count_comments()函数

1
2
3
4
5
6
7
$comments_count= wp_count_comments();
echo"全站评论统计信息 <br />";
echo"待审核的评论: " . $comments_count->moderated . "条<br />";
echo"审核通过的评论: " . $comments_count->approved . "条<br />";
echo"垃圾评论: " . $comments_count->spam . "条<br />";
echo"被丢进回收站的评论: " . $comments_count->trash . "条<br />";
echo"评论总数(不包括垃圾评论): " . $comments_count->total_comments . "<br />";

注意最后一条评论总数,是除了垃圾评论以外的总数,如果要计算包含垃圾评论的总数,使用下面的SQL语句

1
echo$wpdb->get_var("SELECT COUNT(*) FROM $wpdb->comments");

如果在functions中使用$wpdb,不要忘记写上

1
global $wpdb;

获取用户统计信息

使用count_users()函数获取

1
2
3
4
5
6
7
$result= count_users();
echo'用户总数:'.$result['total_users'] . '<br />';
echo'管理员:' . $result['avail_roles']['administrator'] . '<br />';
echo'编辑:' . $result['avail_roles']['editor'] . '<br />';
echo'作者:' . $result['avail_roles']['author'] . '<br />';
echo'投稿者:' . $result['avail_roles']['contributor'] . '<br />';
echo'订阅:者' . $result['avail_roles']['subscriber'] . '<br />' ;

获取分类总数

使用wp_count_terms()函数

1
echo'分类总数:' . wp_count_terms('category');

获取标签总数

1
echo'标签总数:' . wp_count_terms('post_tag');

获取链接数目

要获取所有链接的数目,无论属于哪个分类,可以

1
2
$total_links= $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->links WHERE link_visible = 'Y'");
echo$total_links;

要获取某个分类下的链接总数,假设该分类的ID为2

1
2
$total_links = get_term( 2,'link_category') ;
echo $total_links;

所不同的是用SQL语句可以排除私密链接,get_term返回的是所有链接总数,包括私密链接。

转自http://www.solagirl.net/wordpress-site-status.html

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脚扭伤脚面肿了怎么办 腰突然扭了好痛怎么办 腰扭伤了怎么办最有效 腰扭伤了不能动怎么办 前交叉韧带增粗怎么办 膝盖前交叉韧带损伤怎么办 狗的腿肌肉拉伤怎么办 胳膊上的筋拉伤怎么办 肩周炎胳膊抬不起来怎么办 脖子上的筋拉伤怎么办 脚踝骨扭伤肿了怎么办 脚扭伤肿起来了怎么办 月经量特别少该怎么办 月经血沾床单上怎么办 月经弄到棉被上怎么办 血弄床单上干了怎么办 不小心吃了指甲怎么办 月经没有干净同房了怎么办 撞红了怎么办要吃药吗 自己长得太丑怎么办 长得丑特别自卑怎么办 手挤了有淤血怎么办 手指肚夹淤血了怎么办 指甲被夹了变黑怎么办 孩子手指夹肿了怎么办 指甲压了有淤血怎么办 挤到手指有淤血怎么办 指甲上有黑线是怎么办 指甲被压了要掉怎么办 脚趾肿了有脓怎么办 手指甲上的死皮怎么办 手被东西砸肿了怎么办 手被夹住有淤血怎么办 指头被车门夹了怎么办 手背夹伤了肿了怎么办 剪完指甲边肿了怎么办 手心长水泡又痒怎么办 指甲肿了有脓怎么办 手指肿了有脓包怎么办 手指头肿了有脓怎么办 指甲弄肿了很痛怎么办