我如何设置允许的最大帖子大小和提交的帖子数量?

时间:2015-01-14 作者:OrganicCorridor

如何限制作者可以在我的WordPress网站上创建的帖子的大小以及他们可以创建的帖子的数量?

2 个回复
最合适的回答,由SO网友:Privateer 整理而成

我所知道的最好的方法是过滤数据。

对于帖子,您可以执行以下操作:

function my_check_post_not_crazy( $data, $post_arr ) {
    $max_content_length = 2048;   # max length in characters
    $max_num_posts = 200;         # maximum number of posts

    if ( !current_user_can(\'activate_plugins\') && empty( $post_arr[\'ID\'] ) ) {
        $die_args = array(\'back_link\' => true);
        # Not an admin user and trying to add another post of some type
        if ( strlen($data[\'post_content\']) > $max_content_length ) {
            # Too long
            wp_die("{$max_content_length} characters maximum", \'Cannot Post\', $die_args);
        }

        $args = array( 
            \'author\' => $data[\'post_author\'],
            \'posts_per_page\' => 1
        );
        $posts = new WP_Query( $args );
        if ( $posts->found_posts >= $max_per_user ) {
            wp_die("{$max_num_posts} per user. Limit Reached.", \'Cannot Post\', $die_args );
        }
    }
}
add_filter(\'wp_insert_post_data\', \'my_check_post_not_crazy\', 10, 2 );
使用wp\\u insert\\u attachment\\u数据过滤器,同样的想法也适用于附件。

我刚刚意识到,再看看这个,有两件事:

与其阻止他们发布新帖子,不如从一开始就阻止他们尝试,这样会更方便用户。也许有一个钩子可以检查他们是否可以发帖,获取他们当前的帖子数量,然后在他们单击“New post”时给出一条消息

SO网友:Yosi Mor

部分解决方案解决了请求的后半部分,即限制number 在每个用户的基础上,允许的帖子数量——将使用“Bainternet Posts Creation Limits“”插件。

结束

相关推荐

更改NEXT_POSTS_LINK();和PREVICE_POSTS_LINK();

我们使用以下两个函数来显示分页。<?php next_posts_link( \'Older Entries »\'); ?> <?php previous_posts_link( \'Newer Entries »\'); ?> 上述两个函数将输出如下内容<a href=\"page link goes here\">Older Entries »</a> <a href=\"page link goes here