4ответ(ов) в теме
Preci
не в сети 10 месяцев
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1646
1
00:52

Я не хотел у себя давать права "автора" всем пользователям, т.к. некоторые публикуют записи давно и им удобнее делать это через админку (как и мне) Но вот "новые" пользователи зачастую пугаются админки, да и нечего там ВСЕМ делать. Из-за этого я не использовал аддон фронтэнд публикации.

Но сегодня я допер как сделать работу фронтэнд публикации + редактирования, при этом оставив у пользователей права "подписчик"

Что я сделал:

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 отредактировал шаблон страницы с формой публикации, в результате чего гости вместо формы публикации будут видеть "авторизуйся" - все остальные, включая админов, авторов и т.п. - смогут публиковать записи
Администрация и авторы / редакторы при клике по кнопке "Редактировать" на странице записи попадают в админку (что и требовалось) Все остальные попадают на фронтэнд страницу редактирования

Тему можно перенести, я не знаю в какой раздел её сувать.

0

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