не совсем он правда хорошо работает: не позволяет админу публиковать посты в других категориях((
Справился с частью задачи: исправил плагин, чтобы он создавал рубрику с именем пользователя после регистрации в рубрике по умолчанию, установленную в настройках wordpress.
Осталась одна проблема с правами: никак не хочет изменять рубрику под админом у уже написанных постов или же создаваемых — упорно ставит их в «админскую» рубрику, созданную плагином.
ЕСли кто может помочь, буду рад, или в какую сторону там смотреть? Заранее большое спасибо.
P. S. Думаю, что там нужно куда-то вставить такое:
get_usermeta($user_id, 'user_level') < 8
Вот куда))))
Получилось «отделить» админа: теперь ему можно писать в любую категорию, а то плагин не позволял этого делать))))))
Осталось скрыть некоторые панельки при написании поста от простых пользователей (например, категории)
Если кому понадобится.
Переписал одноименную функцию в плагине так:
function symbiosis_post_save($input) {
global $user_level;
$home = get_usermeta($_POST['post_author'], 'symbiosis_category');
$output = array();
if ( $user_level < 8 ) {
$output[] = $home;
} else {
foreach($input as $item) {
$output[] = $item;
}
}
return $output;
}
и еще подправил одну функцию, чтобы брал рубрику, указанную по умолчанию в wordpress для публикации записей:
function symbiosis_update_term($user_id, $taxonomy, $user_name = null) {
$current = get_usermeta($user_id, 'symbiosis_'. $taxonomy);
$data['name'] = $user_name;
$data['parent'] = get_option('default_category');
if(!empty($current)) {
if(is_null($user_name)) {
wp_delete_term($current, $taxonomy);
}
else {
wp_update_term($current, $taxonomy, $data);
}
}
elseif(!is_null($user_name)) {
$exists = get_term_by('name', $user_name, $taxonomy);
if(!empty($exists)) {
$new['term_id'] = $exists->term_id;
}
else {
$new = wp_insert_term($user_name, $taxonomy, $data);
}
update_usermeta($user_id, 'symbiosis_'. $taxonomy, $new['term_id']);
update_usermeta($user_id, 'symbiosis_default', $new['term_id']);
}
}
плагин работает у меня. потестировал. правда еще не выложил на рабочий сайт 🙂