Здравствуйте.
После публикации Автором записи при нажатии на кнопку редактирования и открытия заново Формы публикации иногда частично слетает содержимое Заголовка, иногда полностью содержимое Заголовка исчезает. Но даже при восстановлении содержимого Заголовка, после нажатия кнопки сохранить появляется такая ошибка "Ошибка публикации! Error 105". На форуме нашел похожую тему с проблемой -
, но в ней нету решения. Возможно решение данной проблемы уже есть?
Wordpress 4.7.4
Wp-Recall 16.0.1 (но проблема существовала и в 15 версии)
Сайт:
Андрей CS сказал(а)
в настройках публикации плагина выставлено ограничение на редактирование публикации по времени?
Да, выставлено. Если убрать ограничение, тогда редактируется без проблем. Но мне нужно, чтобы было ограничение, чтобы через день-два автор не смог бы вообще удалить запись.
Здравствуйте.
Возможно это из-за того, что оба варианта публикации сохраняются из разных мест/разных путей?
Редактирование на этой странице
открывается потому, что она в настройках публикации указана ("Настройки публикации" -"Страница публикации и редактирования"), а на этой странице должен вписан шорткод [ public-form ] - верно?
Так должно быть - в этом я не вижу проблемы.
Роль того, кем пытаетесь отредактировать запись какая? (админ, редактор, автор?) для админа и редактора не должно быть ограничения по времени (если я верно понял в коде плагина по этой ошибке).
Otshelnik-Fm сказал(а)
Здравствуйте.
Возможно это из-за того, что оба варианта публикации сохраняются из разных мест/разных путей?
Роль того, кем пытаетесь отредактировать запись какая? (админ, редактор, автор?)
Здравствуйте.
Роль - автор. Админом публикую и редактирую из админки без проблем.
Otshelnik-Fm сказал(а)
для админа и редактора не должно быть ограничения по времени (если я верно понял в коде плагина по этой ошибке).
Но из настроек я так понял, что можно установить ограничение и для редактора и для админа теоретически.
У меня появилась идея поставить ограничение по времени на Редактора и сменить роль одного из пользователей с автора на редактора и проверить сохранение редактирования. Сейчас попробую
Андрей Помогу сказал(а)
У меня появилась идея поставить ограничение по времени на Редактора и сменить роль одного из пользователей с автора на редактора и проверить сохранение редактирования. Сейчас попробую
Ничего не дало. Та же ошибка.
Может поискать какой-то сторонний дополнительный плагин, который выставляет лимит времени на редактирование - может он будет параллельно работать с WP-Recall?
Но из настроек я так понял, что можно установить ограничение и для редактора и для админа теоретически.
Вы не можете просматривать опубликованные ссылки
- те три галки для фронтенд редактирования.
Эта ошибка из файла class-rcl-edit-post.php
Вот фрагмент проверки:
if(!rcl_is_user_role($user_ID,array('administrator','editor')) && rcl_is_limit_editing($post->post_date)) $this->error(__('Error publishing!','wp-recall').' Error 105');
- вот тут я и вижу что 'administrator','editor' - их не учитывает по времени.
Otshelnik-Fm сказал(а)
Эта ошибка из файла class-rcl-edit-post.php
Вот фрагмент проверки:
if(!rcl_is_user_role($user_ID,array('administrator','editor')) && rcl_is_limit_editing($post->post_date)) $this->error(__('Error publishing!','wp-recall').' Error 105');
- вот тут я и вижу что 'administrator','editor' - их не учитывает по времени.
Значит ли это, что теоретически на Авторе такой ошибки возникать не должно?
Otshelnik-Fm сказал(а)
Вроде в 16.0.7 версии подобную ошибку исправляли
Вы не можете просматривать опубликованные ссылкиобновитесь и проверьте
Ок. Сейчас попробую. Кстати, в 16.0.1 я вообще не нашел файла class-rcl-edit-post.php... искал в разделе редактирования плагинов в админке вордпресса. Может он лежит в другом месте...
Попробую сейчас обновиться.
В бэкапе 15 версии нашел похожий файл rcl_editpost.php - там код такой - скрин
Обновился до 16.0.7 нашел все-таки файл class-rcl-edit-post.php - там код действительно, как писали выше
if(!rcl_is_user_role($user_ID,array('administrator','editor')) && rcl_is_limit_editing($post->post_date))
$this->error(__('Error publishing!','wp-recall').' Error 105');
Ошибка осталась.
Проделал на версии 16.0.7 тот же тест с Редактором и получилось, наверное, то что должно быть.
А именно, поменял роль одного из пользователей с Автора на Редактора, потом выставил в настройках плагина лимит времени редактирования 1 час только на Редактора, опубликовал новую запись, потом попробовал её отредактировать и Ошибки 105 НЕ было!! Но остался вопрос, или сам лимит работает для Редактора в 1 час. надо будет опубликовать запись от Редактора и подождать час и проверить, даст ли плагин возможность редактирования Редактору?
Хотя, проверил на старой записи, которая была в черновиках от февраля 2017 года. Под Редактором во фронтенде опубликовал эту запись и увидел, что возможности редактирования НЕ было. Т.е. получается лимит времени на 1 час работает и для Редактора.
Тогда логический вопрос, если функция работает - , то может поменять код на
...array('administrator','editor',"author")....
?
Otshelnik-Fm сказал(а)
я же вам написал что -
'administrator','editor' - их не учитывает по времени.
- впишете автора и смысл в опции редактирования по времени? Что она включена, что ее нет. Просто отключите ограничение времени редактирования записи
Что-то я уже сам логику потерял.
Смотрите, в настройках плагина новой версии предоставляется возможность выставления лимита времени на редактирование всем трём ролям, тогда почему в коде указан массив только из 2 ролей??
Тем болле, что при проверке на Редакторе, я так понял лимит времени все-таки работает, поэтому логически, если включить в код еще и автора, то и на авторе должна эта функция лимита начать работать.
Ради интереса, сейчас попробую подправить код сам в файле и проверить функционирование лимита на Авторе.
вы никак не читаете переписку - вы задавали этот вопрос
Но из настроек я так понял, что можно установить ограничение и для редактора и для админа теоретически.
Вы не можете просматривать опубликованные ссылки
- я ответил:
- те три галки для фронтенд редактирования.
т.е. сможете вы в админке редактировать или в фронтенде. На время эта настройка не влияет
Otshelnik-Fm сказал(а)
вы никак не читаете переписку - вы задавали этот вопрос
Но из настроек я так понял, что можно установить ограничение и для редактора и для админа теоретически.
Вы не можете просматривать опубликованные ссылки- я ответил:
- те три галки для фронтенд редактирования.
т.е. сможете вы в админке редактировать или в фронтенде. На время эта настройка не влияет
А, извиняюсь. Теперь понял. Эти 2 функции никак не связаны. То есть если я уберу галку с Автора, то он не сможет вообще редактировать запись? Или сможет, но не во фронтенде, а тогда где?
И второе, попробовал добавить в код автора и при редактировании - в итоге у меня исчезла ошибка 105. Что это может означать, если я выставил галку на Авторе для фронтенд редактирования и у меня исчезла ошибка редактировани 105?
То есть если я уберу галку с Автора, то он не сможет вообще редактировать запись? Или сможет, но не во фронтенде, а тогда где?
- в админке - если в общих настройках реколл ему разрешено заходить туда ("Доступ в консоль сайта" "Доступ к консоли сайта разрешен" - авторам и старше)
- проверил - так и есть.
По второму - я уже написал что не понимаю что это вам и зачем. Просто отключите опцию редактирования по времени.
Otshelnik-Fm сказал(а)
То есть если я уберу галку с Автора, то он не сможет вообще редактировать запись? Или сможет, но не во фронтенде, а тогда где?
- в админке - если в общих настройках реколл ему разрешено заходить туда ("Доступ в консоль сайта" "Доступ к консоли сайта разрешен" - авторам и старше)
- проверил - так и есть.По второму - я уже написал что не понимаю что это вам и зачем. Просто отключите опцию редактирования по времени.
Понятно. Доступ к админке у меня запрещен Авторам. Тогда всё правильно - оставляю галку для Авторов только на фронтендредактирование.
Опция редактирования по времени мне нужна для того, чтобы Автор после публикации Записи и после того, как поисковики проиндексируют запись, не смогли бы ее удалить. Тогда теряется смысл вообще предоставления доступа к публикациям своих записей на сайте. Поэтому мне и нужен хоть какой-то лимит по времени на редактирование, чтобы автор после публикации имел ограниченное время на подгонку записи к необходимому конечному результату.
И, если я правильно понял, то ограничение по времени на редактирование записи после ее публикации действует только при редактировании во фронтэнде. Так как в админке под администратором я могу редактировать любую запись с любой датой публикации даже при выставленном в настройках реколла лимитом времени на редактирование.
Получается, что при добавлении в код автора исчезает ошибка 105 и функция ограничения по времени работает и для Авторов (во фронтэнде), как надо. Вот это мне и надо. Поэтому, наверное, можно считать проблему с Ошибкой 105 решеной..?
UPD 06.09.2018
Решил проблему с помощью куска кода в functions.php. Взял отсюда -
function devise_restrict_editing( $allcaps, $cap, $args ) { if( 'edit_post' != $args[0] && 'delete_post' != $args[0] || !empty( $allcaps['manage_options'] ) || empty( $allcaps['edit_posts'] ) ) return $allcaps; // Загружаем данные записи: $post = get_post( $args[2] ); if( 'publish' != $post->post_status ) return $allcaps; // если запись старше 30 дней. Можно изменить значение времени if( strtotime( $post->post_date ) < strtotime( '-30 day' ) ) { //тогда запрещаем редактирование $allcaps[$cap[0]] = FALSE; } return $allcaps; } add_filter( 'user_has_cap', 'devise_restrict_editing', 10, 3 );
Теперь после публикации записи у автора есть время (в днях) на редактирование и теперь ошибка Error 105 не появляется. Может кому-то пригодится и тоже поможет или, по крайней мере, поможет в кастомизации функции.