对用户帖子进行计数,并存储数量以备将来使用

时间:2013-04-18 作者:ovidiubica

我想数一数作者的帖子,并存储这个数字以备日后使用,即使其中一些帖子已被删除。

$rows = $wpdb->get_results( $wpdb->prepare( "SELECT post_status, COUNT(ID) as count FROM $wpdb->posts WHERE post_author = %d AND post_type = \'post_type\' GROUP BY post_status", $current_user->ID ) );
$stats = array();
foreach ( $rows as $row )
    $stats[ $row->post_status ] = $row->count;

        $post_count_published = isset($stats[\'publish\']) ? $stats[\'publish\'] : 0;
你知道如何做到这一点吗?

1 个回复
最合适的回答,由SO网友:Pat J 整理而成

您可以使用update_user_meta() 向用户的元字段添加信息,以及count_user_posts() 获取初始计数。

例如:

<?php
    add_action( \'new_to_publish\', \'wpse96358_author_count\' );
    add_action( \'draft_to_publish\', \'wps396358_author_count\' );

    function wpse96358_author_count() {
        global $post;
        // get initial count
        $single = true;
        $author_count = get_user_meta( $post->post_author, \'author_count\', $single );
        if ( strlen( $author_count ) > 0 ) {
            $author_count = intval( $author_count ); // make sure it\'s a number
            $author_count++; // increment by one
        } else {
            // the meta information isn\'t set, so we\'ll create it
            $author_count = count_user_posts( $post->post_author );
        }

        update_user_meta( $post->post_author, \'author_count\', $author_count );
    }

?>

NB

您最好咨询Action Reference 以及Post Status Transitions reference 看看哪种行动最适合你。我选择了new_to_publishdraft_to_publish 但这取决于您希望何时进行更新。

结束

相关推荐

Blog posts not displaying

在我的Wordpress网站的第一个页面上,我总是可以看到我的帖子,但是当我导航到我的“博客”页面并附上我的博客模板时,我无法在这里显示我的帖子。我使用wordpress函数在第一页上回显当前页面模板,它正在获取索引。php模板。我的博客页面正在获取博客模板。我已经复制并粘贴了代码<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h2><a href=\"<?php