所有用户(订阅者、贡献者、作者等)的回应编号他们至少发布过一次

时间:2013-03-20 作者:Steve

希望今天对于精通代码的女士们和先生们来说,这是一个很容易回答的问题:如何在WordPress博客上回复成功发布至少一篇文章(打折待定、草稿等)的注册用户的确切数量?订阅者可以在我的博客上发布帖子,而且每天都有大量新成员加入,新帖子生成,所以手动更新这个数字会有点棘手(呵呵)。

我很想在侧边栏中的某个地方找到一个,但是,考虑到我对PHP的知识有限,我对如何实现这一点束手无策。

谢谢你们的帮助,伙计们。干杯

1 个回复
SO网友:David Gard

这里有一个我碰巧用过的。函数返回一个数组,该数组由作者ID数组、作者名称数组和作者数组成。

将此代码放入functions.php -

/**
 * Return an array of the number of posting authors, and their names and ID\'s
 */
function get_author_data(){

    global $wpdb;

    /** Create the query and then grab all of the ID\'s of all authors who have posted at least once */
    $query = $wpdb->prepare(\'SELECT DISTINCT %1$s.post_author FROM %1$s WHERE %1$s.post_status IN ("publish")\', $wpdb->posts);
    $author_ids = $wpdb->get_col($query);
    $authors[\'ID\'] = $author_ids;

    /** Get the name of all of the authors that have posted at least once */
    $authors[\'name\'] = array();
    if(!empty($authors[\'ID\'])) : foreach($authors[\'ID\'] as $author_id) :

            $query = $wpdb->prepare(\'SELECT %1$s.display_name FROM %1$s WHERE %1$s.ID = %2$s\', $wpdb->users, $author_id);
            $authors[\'name\'][] = $wpdb->get_var($query);

        endforeach;
    endif;

    /** Get a count of the number of authors who have posted at least once */
    $authors[\'count\'] = count($authors[\'ID\']);

    return $authors;

}
当您想要获取信息时-

$authors = get_author_data();
然后输出所需的信息-

/** Output all author names */
if(!empty($authors[\'name\'])) : foreach($authors[\'name\'] as $author_nam) :

        print_f(\'<li>%1$s</li>\', $author_name);

    endforeach;
endif;

/** Output a count of authors */
print_f(\'<p>Number of contributing authors: %1$s</p>\', $authors[\'count\']);

结束

相关推荐

通过QUERY_POSTS搜索标题词(不完全匹配)

我们正在建立一个数据库,其中包含来自不同运动员的个人数据,如姓名、身高、体重等。我们已经成功构建了一个详细的过滤器query_posts.除了用于按姓名筛选运动员的文本输入字段外,每个筛选字段都正常工作。问题是,当我们寻找一个运动员的名字时,表格只允许我们按其确切的名字来查找运动员。例如:如果我们正在寻找一位名叫约翰·多伊的运动员,我们需要写出帖子标题的确切名称(“约翰·多伊”)。相反,我们希望只需键入“John”或“Doe”即可得到结果。我们的query_posts 筛选器如下所示:query_post