将最小字数添加到摘录字段中,以强制执行摘录字段的最小字数,然后才能将Post状态更改为pending
, 我们会稍微改变s_ha_dum\'s代码。
可以通过过滤来完成wp_insert_post_data:
function wcexcerpt($data){
if (!current_user_can(\'edit_others_posts\')) {
$num = 5; // minimum word count
if (str_word_count($data[\'post_excerpt\']) < $num) {
$data[\'post_status\'] = \'draft\';
}
}
return $data;
}
add_action(\'wp_insert_post_data\',\'wcexcerpt\');
除了可以
edit_others_posts.
现在,如果用户未通过字数计算,则需要向用户显示错误消息。您可以通过以下任一方式完成此操作:
正在添加wp_die:
wp_die( __(\'Error: your excerpt is below the minimum word count.\') );
或通过
Admin Notice:
function excerpt_error() {
?>
<div class="error">
<p><?php _e( \'Error: your excerpt is below the minimum word count.\' ); ?></p>
</div>
<?php
}
add_action( \'admin_notices\', \'excerpt_error\' );
将摘录作为一项规则添加到WyPiekacz中现在,这个有点复杂。将摘录字段作为
WyPiekacz 插件,请执行以下步骤。
首先,我们将在enforce_rules
作用
搜索:
$add_dots = get_option( \'wypiekacz_enforce_add_dots\' );
并在该行下方添加以下内容:
// Enforce Excerpt for none-admins
if (!current_user_can(\'administrator\')) {
$num = 1; // minimum word count
if (str_word_count($data[\'post_excerpt\']) < $num) {
$this->errors[] = array( \'excerpt\', __(\'Add an Excerpt to your post.\', \'wypiekacz\') );
}
}
通过阅读上面的代码,您会注意到,我们已将错误消息添加到
errors
阵列:
$this->errors[] = array( \'excerpt\', __(\'Add an Excerpt to your post.\', \'wypiekacz\') );
然后,让我们添加选项。搜索:
add_option( \'wypiekacz_post_thumbnail\', 0 ); // Check post thumbnail
并在该行下方添加以下内容:
add_option( \'wypiekacz_excerpt\', 1 ); // Check excerpt
最后,让我们注册设置。搜索:
register_setting( \'wypiekacz\', \'wypiekacz_post_thumbnail\', array( &$this, \'sanitize_01\' ) );
并在该行下方添加以下内容:
register_setting( \'wypiekacz\', \'wypiekacz_excerpt\', array( &$this, \'sanitize_nonnegative\' ) );
就是这样!现在,您可以强制作者在帖子中添加摘录。
是否也要添加最大字数?当然,使用Rarst\'s解决方案。