在帖子可以等待审查之前的最小字数

时间:2013-03-22 作者:Peter Willis III

我正在寻找一种方法来检查一篇文章是否有一个最小的字数,然后再允许它被发送审查(添加到待处理的文章状态)。

以下是我的代码:

if (current_user_can(\'contributor\')) {
function minWord($content){
        global $post;
        $num = 150; //set this to the minimum number of words
        $content = $post->post_content;
        if (str_word_count($content) <  $num)
            wp_die( __(\'Error: your post is below the minimum word count.\') );
}
add_action(\'draft_to_pending\', \'minWord\');
}
这似乎“有效”,因为当字数确实低于150时,它会显示一条错误消息。然而,该帖子仍保存为“待定”。有没有办法防止帖子被挂起,而是将其保存为“草稿”。

干杯

彼得

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

那些过渡柱挂钩run after the post is saved. 您必须提前中断该过程。我会wp_insert_post_data.

function minWord($data){
  if (current_user_can(\'contributor\')) {
    $num = 150; //set this to the minimum number of words
    if (str_word_count($data[\'post_content\']) <  $num) {
      $data[\'post_status\'] = \'draft\';
    }
  }
  return $data;
}
add_action(\'wp_insert_post_data\',\'minWord\');
当我测试它时,它似乎起作用了。遵循您的代码,这只会影响“参与者”角色。它不会中断其他角色的状态更改。

结束

相关推荐