如何对贡献者和作者隐藏其他用户的帖子计数和帖子

时间:2015-08-26 作者:akarim

我正在使用wordpress最新版本并运行一个多作者博客。当任何用户(贡献者或作者)转到编辑时。php,他们看到了其他用户的帖子和帖子数量。我用这个代码隐藏其他作者的帖子,

function posts_for_current_author($query) {
    global $user_level;

if($query->is_admin && $user_level < 5) {
    global $user_ID;
    $query->set(\'author\',  $user_ID);
    unset($user_ID);
}
unset($user_level);

return $query;

} add_filter(\'pre_get_posts\', \'posts_for_current_author\');

现在他们看到的不是其他帖子,而是总帖子数和已发布帖子数。请参见屏幕截图:

editor.php screen of contributors

我不想对用户编辑隐藏所有和已发布的部分。php和其他部分只统计自己的帖子。请帮我做这个!

1 个回复
SO网友:Ignat B.

要从帖子编辑器页面中删除特定的All()和published()帖子计数,您可以:

// Create a specific hook
add_filter("views_edit-post", \'custom_editor_counts\', 10, 1);


function custom_editor_counts($views) {
    // var_dump($views) to check other array elements that you can hide.
    unset($views[\'all\']);
    unset($views[\'publish\']);
    return $views;
}
让我们更高级地从Posts editor管理表中删除All(),从Pages editor管理表中删除Published()。

// Create a hook per specific Admin Editor Table-view inside loop
foreach( array( \'edit-post\', \'edit-page\') as $hook )
    add_filter( "views_$hook" , \'custom_editor_counts\', 10, 1);


function custom_editor_counts($views) {

    // Get current admin page view from global variable 
    global $current_screen;

    // Remove count-tab per specific screen viewed.
    switch ($current_screen->id) {
        case \'edit-post\':
            unset($views[\'all\']);
            break;
        case \'edit-page\':
            unset($views[\'publish\']);
            break;
    }

    return $views;
}
参考文献:[Hide the post count behind Post Views (Remove All, Published and Trashed) in Custom Post Type]

UPDATE

用代码更新了答案如何更新特定用户的帖子数量,不包括“所有”和“发布”视图。最近在WP 4.3二一五上测试。

add_filter("views_edit-post", \'custom_editor_counts\', 10, 1);

function custom_editor_counts($views) {
    $iCurrentUserID = get_current_user_id();

    if ($iCurrentUserID !== 0) {

        global $wpdb;

        foreach ($views as $index => $view) {
            if (in_array($index, array(\'all\', \'publish\')))
                continue;
            $viewValue = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type=\'post\' AND post_author=$iCurrentUserID AND post_status=\'$index\'");
            $views[$index] = preg_replace(\'/\\(.+\\)/U\', \'(\' . $viewValue . \')\', $views[$index]);
        }

        unset($views[\'all\']);
        unset($views[\'publish\']);
    }
    return $views;
}

相关推荐

Get_the_Author_meta()和Get_User_meta()有什么不同?

我有个问题:get_the_author_meta() 返回元get_user_meta() 对于相同的元键返回false,我不知道为什么会发生这种情况。关于用户元数据,我应该何时使用其中一种?I tried this:get_the_author_meta(\'afzfp_user_status\', $user->ID); get_user_meta(\'afzfp_user_status\', $user->ID, true); It returns:String \"t