按作者或角色限制帖子创建计数

时间:2020-04-27 作者:Trip Vendors Inc

我需要限制可以创建的帖子数量。

我想按作者(ID)或角色对总帖子、每个时段(月)的帖子进行任何更改。

目前在存储库中找到的现成插件不再受支持。

是否有功能。php代码片段或其他一致工作的方法?

有什么建议吗?

谢谢

2 个回复
SO网友:TomC

我有一个网站,该网站最多提供5个非付费会员帖子:

function author_post_count($user_id, $post_type = array(\'YOUR_CUSTOM_POST_TYPE_NAME_HERE\')) {
    $args = array(
        \'post_type\'         => $post_type,
        \'author\'            => $user_id,
        \'posts_per_page\'    => -1
    );

    $query = new WP_Query($args);
    return $query->found_posts;
}
然后我使用:

if ( author_post_count(get_current_user_id()) >5) {
SHOW RESTRICTION NOTICE CODE HERE FOR USERS WITH MORE THAN 5 POSTS 
}
所以你可以把这两者结合起来save_post 钩如果您不熟悉,请仔细阅读,尤其是关于避免循环的这一部分:https://developer.wordpress.org/reference/hooks/save_post/#avoiding-infinite-loops

然后您可以将查询更改为使用Date Parameters

SO网友:CodeMascot

WordPress名称中有一个函数count_user_posts 它接受两个参数,第一个是$userid 其次是$post_type. 因此,通过提供用户ID和帖子类型,可以检查用户的帖子是否超过5篇。

在代码中,这看起来更像下面-

// Assuming user ID is 5 and the post type is \'post\'
if ( count_user_posts( 23 , \'post\' ) > 5 ) {
    // Do what you prefer if the post count is more than 5.
}

相关推荐

当使用只接受一个参数的GET_PREVICE_POSTS_LINK()时,为什么要指定多个参数?

我在看一些插件代码,看起来是这样的:get_previous_posts_link(__(\'<span>&larr;</span> Newer\', \'gc-sermons\'), $total_pages当我看到WP function reference for get_previous_post_link 我发现它只定义了一个这样的参数:get_previous_posts_link( string $label = null )通过上述参数传递的第一个参数有意义: