Здравствуйте.
Стоит поискать плагин в официальном репозитории вордпресс, что ограничивает доступ к записям и страницам по роли и вписать на эту страницу шорткод формы публикации. Это если не программировать.
Если программировать - то через задания
С вкладкой ЛК также или можете почитать как вывести свою вкладку в документации
"Пример создания своего дополнения 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; }