我正在寻找一种方法来检查一篇文章是否有一个最小的字数,然后再允许它被发送审查(添加到待处理的文章状态)。
以下是我的代码:
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时,它会显示一条错误消息。然而,该帖子仍保存为“待定”。有没有办法防止帖子被挂起,而是将其保存为“草稿”。
干杯
彼得
最合适的回答,由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\');
当我测试它时,它似乎起作用了。遵循您的代码,这只会影响“参与者”角色。它不会中断其他角色的状态更改。