С нами с 18.03.09
Сообщения: 592
Рейтинг: 374
|
Добавлено: 02/03/13 в 09:52 |
Мне нужно разрешить конкретному зарегеному юзеру постить без модерации в конкретную категорию (только в нее одну) и соответственно чтобы у него не было доступа на редактирование постов из других категорий (и в идеале не было прав вообще, кроме вышеописанных). Можно ли это реализовать?
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 02/03/13 в 10:26 |
Blackout: плагин User Role Editor, дай права автора, задай постам в категории его авторство.
|
|
|
|
С нами с 18.03.09
Сообщения: 592
Рейтинг: 374
|
Добавлено: 02/03/13 в 10:54 |
Поставил, посмотрел. Не нашел там про "постить без модерации в конкретную категорию (только в нее одну)"
|
|
|
|
+ +
WP-Master
С нами с 17.01.13
Сообщения: 1922
Рейтинг: 1123
|
Добавлено: 02/03/13 в 11:02 |
Blackout: черт, точно, тут решения не знаю =(.
|
|
|
|
С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538
|
Добавлено: 02/03/13 в 14:28 |
Пользователи в массиве $users с ключами по логину пользователей (в примере admin). Категория (в примере Uncategorized) должна существовать иначе посты создаваться не будут.
Вроде работает, но я особо не тестировал, проверяй сам.
wp-content/plugins/foo/foo.php
Код: [развернуть] | <?php
/*
Plugin Name: foo
*/
require ABSPATH.WPINC.'/pluggable.php';
global $pagenow;
global $current_user;
get_currentuserinfo();
$users = array(
'admin' => array(
'page' => array(
'index.php' => true,
'edit.php' => true,
'post.php' => true,
'post-new.php' => true
),
'category' => 'Uncategorized'
)
);
$msg = "You don’t have premissions to access this page.";
if(isset($users[$current_user->user_login])) {
add_filter('xmlrpc_enabled', '__return_false');
add_filter( 'enable_post_by_email_configuration', '__return_false' );
if(is_admin()) {
$user = $users[$current_user->user_login];
if(isset($user['page'][$pagenow])) {
add_action('pre_get_posts', create_function('', 'global $typenow;if(\'post\'!=$typenow)wp_die(\''.$msg.'\');'));
if($pagenow == 'edit.php') {
add_action('pre_get_posts', create_function('','set_query_var(\'author\','.$current_user->ID.');'));
add_filter('post_row_actions', 'remove_quick_edit_link');
add_filter('wp_dropdown_cats', '__return_false');
add_filter('manage_posts_columns', 'remove_columns');
}
else if($pagenow == 'post.php' or $pagenow == 'post-new.php') {
add_action('do_meta_boxes', 'remove_metaboxes');
add_filter( 'option_default_category', create_function('$value', 'return '.get_cat_ID($user['category']).';'));
}
}
else
wp_die($msg);
}
}
function remove_columns($columns){
unset($columns['author']);
unset($columns['categories']);
unset($columns['tags']);
unset($columns['comments']);
return $columns;
}
function remove_quick_edit_link($actions) {
if(isset($actions['inline hide-if-no-js']))
unset($actions['inline hide-if-no-js']);
return $actions;
}
function remove_metaboxes() {
remove_meta_box('categorydiv', 'post', 'side');
remove_meta_box('formatdiv', 'post', 'side');
remove_meta_box('tagsdiv-post_tag', 'post', 'side');
remove_meta_box('postimagediv', 'post', 'side');
remove_meta_box('slugdiv', 'post', 'normal');
remove_meta_box('postexcerpt', 'post', 'normal');
remove_meta_box('trackbacksdiv', 'post', 'normal');
remove_meta_box('postcustom', 'post', 'normal');
remove_meta_box('commentstatusdiv', 'post', 'normal');
remove_meta_box('commentsdiv', 'post', 'normal');
remove_meta_box('revisionsdiv', 'post', 'normal');
remove_meta_box('authordiv', 'post', 'normal');
remove_meta_box('sqpt-meta-tags', 'post', 'normal');
} |
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |