添加摘录的最小字数(以及如何强制摘录作为WyPiekacz的规则)

时间:2013-11-26 作者:Christine Cooper

如何在将帖子发送至待审核之前,在摘录字段中添加最小字数?我需要摘录字段中的内容。

还有,如何将摘录字段作为条件添加到WyPiekacz 插件?WyPiekacz是一个插件,用于检查提交审查的帖子是否满足一组规则。

1 个回复
最合适的回答,由SO网友:Christine Cooper 整理而成

将最小字数添加到摘录字段中,以强制执行摘录字段的最小字数,然后才能将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解决方案。

结束

相关推荐

Pagenavi显示了许多页面,这些页面是从带有Query_Posts的站点中的所有帖子计算而来的

我需要执行从2封关键字帖子使用s=keyword 具有get_posts, 但只搜索标题。我发现this answer.我创建了一个自定义模板,以便在单个页面中使用它。然后我用了一个合并的get_posts 在我的回答中使用this因此,我的自定义模板代码是:<?php /* Template Name: custom template posts */ ?> <?php get_header(); ?> <?php add_filter( \'po