私は寄稿者がサイト上に個人的なページを持つことができるようにカスタム投稿タイプを使用しています。
ユーザーが自分のサイトに登録するたびに、登録ユーザーを作成者として持つカスタムタイプの投稿がスクリプトによって作成されます。
ユーザーの投稿を抑えるために、この投稿は編集者によって公開されています。
私はユーザー(寄稿者)になることを望みます:
私は ユーザーロールエディタを使用しています ロールと機能を管理するために/.
それをする方法はありますか?
ロールエディターまたはロールスコープを使用すると、投稿者がカスタム投稿タイプを編集するように設定できますが、公開しないため、すべての変更は承認までドラフトとして設定され、カスタム投稿タイプの新しい投稿の作成を制限するにはプラグインを使用できます- Bainternet Posts Creation Limits
編集の再承認を強制するには、このコードを追加します
add_filter( 'wp_insert_post_data', 're_aprove', '99', 2 );
function re_aprove( $data, $postarr ) {
//check if current user is not admin
if ( ! current_user_can( 'manage_options' ) && 'YOUR_CUSTOM_TYPE' === $postarr['post_type'] ) {
if ( 'publish' === $data['post_status'] ) {
$data['post_status'] = 'pending';
}
}
return $data;
}
YOUR_CUSTOM_TYPE
をカスタム投稿タイプ名に変更します。
私が '99'を追加するまで、私の仕事はしませんでした2)。 add_filterの末尾まで。
これが理由についての参照です: http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_insert_post_data
add_filter('wp_insert_post_data','re_aprove', '99', 2);
function re_aprove( $data , $postarr ){
global $current_user;
get_currentuserinfo();
//check if current user is not admin
if (!current_user_can('manage_options') && $postarr['post_type'] == "candy-item" ){
if ($data['post_status'] = "publish"){
$data['post_status'] = "pending";
}
}
return $data;
}
ついに私は 解決しました using Revisionary plugin、 http://wordpress.org/extend/plugins/revisionary/ それは私が主題で尋ねたことを正確にするために使用されますタイトル
機能のより詳細な管理のために(すでに修正版は統合されています) Role Scoper http://wordpress.org/extend/plugins/role-scoper/
最初のものはセットアップがとても簡単で、2番目のものはもっと練習が必要です、ユーザーインターフェースそれは少し混乱しますが、それは本当に強力です