Здравствуйте.
Стоит поискать плагин в официальном репозитории вордпресс, что ограничивает доступ к записям и страницам по роли и вписать на эту страницу шорткод формы публикации. Это если не программировать.
Если программировать - то через задания
С вкладкой ЛК также или можете почитать как вывести свою вкладку в документации
"Пример создания своего дополнения WP-Recall" и основываясь на апи вордпресс (его документации) сделать нужные проверки и выводить по роли вкладку.
Подскажите, собрал вот такой код. Но администраторам все равно видно вкладку. Как скрыть для них?
add_action('init','add_tab_my_contactform');
function add_tab_my_contactform(){
if (is_user_role_in('author') ) {
$tab_data = array(
'id'=>'postform',
'name'=>'Сделать публикациюq',
'public'=>0,//делаем вкладку приватной
'icon'=>'fa-pencil',//указываем иконку
'output'=>'menu',//указываем область вывода
'content'=>array(
array( //массив данных первой дочерней вкладки
'callback' => array(
'name'=>'my_contactform_recall_block',//функция формирующая контент
)
)
)
);
rcl_tab($tab_data);
}
}
У меня получилось сделать, то что я хотел изначально. Я вывел форму публикации, в зависимости от роли пользователя используя данную функцию. Но это маленько другое. Здесь этот id(postform) он стандартный, то есть он уже добавлен самим recall, а мне его нужно отредактировать. Как это можно сделать?
Вот сама функция, я ее нашел.
function is_user_role_in( $roles, $user = false ){
if( ! $user ) $user = wp_get_current_user();
if( is_numeric($user) ) $user = get_userdata( $user );
if( empty($user->ID) )
return false;
foreach( (array) $roles as $role )
if( isset($user->caps[ $role ]) || in_array($role, $user->roles) )
return true;
return false;
}