私はすべてがタイトルにあると思います。ユーザーが「作成者」の場合に投稿が更新されたときに、投稿のステータスを「保留」に変更する方法を見つけたいと思います。私は別のプラグインを試してみましたが、どれもうまくいきませんでした。私はwordpressが初めてなので、この機能を実現するためにコードをどのように変更すればよいのかがよくわかりません。
あなたの助けのためにTHX!
(英語ですみません)
投稿を公開するのをやめてにして、プレビュー用に送信に強制することは可能です。このコードを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);
注:save_postフックを含むwp_update_postなどの関数を呼び出す場合、フックされた関数は無限ループを作成します。これを回避するには、必要な関数を呼び出す前に関数のフックを解除してから、その後再度フックします。詳細はこちらをご覧ください link
作成者ロールを持つユーザーは、自分の投稿を公開および管理できるユーザーです。そのため、投稿の投稿を無効にするように作成者ユーザーのデフォルトの機能を変更することはできません。すべてのユーザー(作者)を寄稿者に設定できます。それから、彼らはただ投稿を書いて、彼らの投稿を管理することができますが、それらを公開することはできません。
参考のために: 役割と能力