Я не хотел у себя давать права "автора" всем пользователям, т.к. некоторые публикуют записи давно и им удобнее делать это через админку (как и мне) Но вот "новые" пользователи зачастую пугаются админки, да и нечего там ВСЕМ делать. Из-за этого я не использовал аддон фронтэнд публикации.
Но сегодня я допер как сделать работу фронтэнд публикации + редактирования, при этом оставив у пользователей права "подписчик"
Что я сделал:
1. С помощью плагина "Редактор ролей пользователей" выставил права подписчикам:
Редактировать опубликованные статьи
Изменять статьи, Загружать файлы.
2. В настройках аддона публикации выставил:
Публикация разрешена: Гостям и пользователям
Перенаправление на страницу: Не выбрано
Модерация публикаций: Отправлять на модерацию
Фронтэнд редактирование: Убрал все галки, т.к. авторы и я редактируем в админке, нам там удобнее
3. Создал шаблон страницы для формы публикации заменил там:
</pre> на <pre class="lang:default decode:true ">
4. На странице single.php вывел кнопку для редактирования с помощью
<?php
if( is_user_logged_in() AND user_can( $user_ID, 'author' ) AND $user_ID == $post->post_author ){ ?>
<p class="post-edit-button"><a title="Редактировать" object-id="none" href="<?php echo "/wp-admin/post.php?post=".$post->ID."&action=edit"; ?>"><i class="fa fa-pencil-square-o"></i></a></p>
<?php }
elseif(is_user_logged_in() AND $user_ID == $post->post_author) echo rcl_edit_post_button_html($post->ID); ?>
Есть 1на "мини-проблема" - для админа будет выводиться 2 таких кнопки, но это не страшно т.к. все остальные будут видеть только 1ну.
Как итог:
В пункте 2 мы разрешили публикацию с фронтэнд даже гостям, лично мне этого ненужно и я в пункте 3 отредактировал шаблон страницы с формой публикации, в результате чего гости вместо формы публикации будут видеть "авторизуйся" - все остальные, включая админов, авторов и т.п. - смогут публиковать записи
Администрация и авторы / редакторы при клике по кнопке "Редактировать" на странице записи попадают в админку (что и требовалось) Все остальные попадают на фронтэнд страницу редактирования
Тему можно перенести, я не знаю в какой раздел её сувать.
Fatal error: Uncaught Error: Call to undefined function ads_get_box() in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php:15 Stack trace: #0 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(310): add_adv_content_after_first_forum_post('pfm-single-post...', '/var/www/www-ro...') #1 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array) #2 /var/www/www-root/data/www/codeseller.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/functions/files.php(57): do_action('rcl_include_tem...', 'pfm-single-post...', '/var/www/www-ro...') #4 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/functions-templates.php(117): rcl_include_template('pfm-single-post...', '/var/www/www-ro...') #5 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/themes/prime-first/templates/pfm in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php on line 15