订阅者可以创建的WordPress限制帖子

时间:2015-06-08 作者:Vale Boccaccio

嗨,我的wordpress用户可以提交帖子。但我想限制他们可以提交的帖子数量。你能帮帮我吗?

我已经试过了https://wordpress.org/plugins/bainternet-posts-creation-limits/https://cs.wordpress.org/plugins/wpsite-limit-posts/ 但它们不起作用。

谢谢

1 个回复
SO网友:jackreichert

此解决方案使用publish post hook. 这里的情况是,发布帖子时,它会运行自定义post_published_limit 我们在下面创建的函数。

$max\\u posts在这里是静态设置的,您可以将其扩展以从其他地方获取值,但这超出了问题的范围。然而,有plenty 属于literature 描述如何做到这一点。

然后,该函数获取当前试图发布的作者的帖子数。

如果$计数超过$max\\u posts,函数将将其保存为草稿,而不是发布。

function post_published_limit( $ID, $post ) {
    $max_posts = 5; // change this or set it as an option that you can retrieve.
    $author = $post->post_author; // Post author ID.
    $count = count_user_posts( $author, \'post\'); // get author post count

    if ( $count > $max_posts ) {
        // count too high, let\'s set it to draft.
        $post->post_status = \'draft\';
        wp_update_post( $post);
    }
}
add_action( \'publish_post\', \'post_published_limit\', 10, 2 );

结束

相关推荐

在使用诸如‘PRE_GET_POSTS’和‘POSTS_WHERE’之类的过滤器时,确定‘IS_FORWART_PAGE’的正确方法是什么?

在我的网站上,如果用户正在查看静态主页,则应应用多个过滤器。我的理解是is_front_page() 应确定是否确实如此。然而,每当我使用这个函数时,我发现它有时会返回true (例如。posts_orderby) 但大多数情况下,它会回来false (例如。pre_get_posts, posts_fields, posts_join 和posts_where). 不管结果如何,我总是收到以下通知-正在尝试获取{my\\u path}\\wp includes\\query中非对象的属性。php在线4