更新帖子时强制“提交审阅”

时间:2017-05-03 作者:S.Ardant

我认为一切都在标题中。我想找到一种方法,当用户是“作者”时更新帖子时,将帖子的状态更改为“待定”。我已经尝试过使用不同的插件,但都不起作用。我是wordpress的新手,所以我真的不明白应该如何修改代码来获得这个功能。

谢谢你的帮助!

(对不起我的英语)

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

有可能stop author to publish post, 强迫他Submit For Preview. 只需将此代码添加到functions.php 你们都完了。

<?php
   function take_away_publish_permissions() {
        $user = get_role(\'author\');
        $user->add_cap(\'publish_posts\',false);
   }
   add_action(\'init\', \'take_away_publish_permissions\' );
?>
**更新代码**此共享代码用于在作者更新帖子时将帖子状态设置为预览或挂起

function postPending($post_ID)
 { 
     if(get_role(\'author\'))
     {
        //Unhook this function
        remove_action(\'post_updated\', \'postPending\', 10, 3);

        return wp_update_post(array(\'ID\' => $post_ID, \'post_status\' => \'pending\'));

        // re-hook this function
        add_action( \'post_updated\', \'postPending\', 10, 3 );
     }
 }
add_action(\'post_updated\', \'postPending\', 10, 3);
NOTE: 如果调用包含save\\u post挂钩的wp\\u update\\u post等函数,那么挂钩函数将创建一个无限循环。为了避免这种情况,请在调用所需函数之前先取消钩住函数,然后再重新钩住它。有关详细信息,请查看此link

SO网友:Aishan

具有作者角色的用户可以发布和管理自己的帖子。因此,您无法更改作者用户禁用发布帖子的默认功能。您可以将所有用户(作者)设置为参与者。然后他们只能写帖子和管理帖子,而不能发布帖子。

供参考:Roles and Capabilities

相关推荐

Even/Odd every two posts

我需要每两篇文章显示一个不同的布局,是否可以使用偶数/奇数来实现这一点?<?php while (have_posts()): the_post() ?> <?php if ($wp_query->current_post % 2 == 0): ?> even <?php else: ?> odd <?php endif ?> <?php endwhile