Вопрос или проблема
На прошлой неделе я обновился до версии 3.6.1. Я откатился и снова обновился 2 раза. Когда я откатился, все работало. Я отключил плагины, сменил на тему 2012. Попробовал 3.7 с теми же проблемами.
Пользователи могут создавать посты на странице пост-новый без проблем, ЕСЛИ они не редактор, администратор и т. д. на другом блоге в мультисайте. Если я удаляю пользователя со второго сайта, он сразу же может публиковать в первом и наоборот.
Они могут использовать быстрый пост с панели управления, чтобы добавить пост, и могут редактировать без проблем.
Объект поста не создается или не удается создать, когда пользователь находится на двух блогах.
Уведомление: Попытка получить свойство не-объекта в D:\Websites\wp-admin\includes\post.php на строке 471 stdClass Объект ( [post_content] => [post_title] => [post_excerpt] => [post_name] => )
Уведомление: Неопределенное свойство: stdClass::$ID в D:\Websites\wp-admin\post-new.php на строке 73
Уведомление: Неопределенное свойство: stdClass::$post_date в D:\Websites\wp-admin\edit-form-advanced.php на строке 52
Уведомление: Неопределенное свойство: stdClass::$post_date в D:\Websites\wp-admin\edit-form-advanced.php на строке 65
Уведомление: Неопределенное свойство: stdClass::$post_status в D:\Websites\wp-admin\edit-form-advanced.php на строке 90
Уведомление: Неопределенное свойство: stdClass::$post_status в D:\Websites\wp-admin\edit-form-advanced.php на строке 124
Уведомление: Неопределенное свойство: stdClass::$post_type в D:\Websites\wp-includes\taxonomy.php на строке 169
Уведомление: Неопределенное свойство: stdClass::$post_type в D:\Websites\wp-includes\taxonomy.php
Буду признателен за любые предложения или идеи.
Судя по тому, что я могу прочитать в вашем вопросе и комментариях, проблема, похоже, возникает из базы данных, а не из темы или плагина. Пользователи, роли и возможности WordPress на самом деле сохраняются в базе данных.
Когда вы устанавливаете плагин, который не сбрасывает изменения, которые он изменил (или вы изменили во время его использования), ваша установка останется с этими изменениями. К сожалению, есть много плагинов, которые не очищают после себя. Иногда даже темы делают вещи, которые должны (но не могут) быть оставлены для плагинов.
Логичный (не программный) способ отладить вашу проблему и найти решение – установить любой плагин, который покажет вам список ролей и присвоенных возможностей. В данный момент уже есть некоторые в репозитории плагинов wp dot org (менеджеры ролей и т. д.) или вы можете написать свой собственный. Когда вы что-то напишете или скачаете и установите, вам лучше всего будет локально настроить чистую установку, на которой активен только этот плагин. Затем вручную сравните ваши роли и возможности и посмотрите, где возникает ошибка, или, другими словами, попробуйте исправить отсутствующие роли и/или пользователя и/или возможности роли.
Имейте в виду, что существующие плагины менеджеров ролей не будут заботиться о “сопоставленных” возможностях, специальной возможности типа поста и так далее. Так что все еще могут быть какие-то сбои, если вы не проверите каждый аспект. Это оставляет мне последнюю заметку: просмотрите ваши резервные копии и установите одну из копий, где эта проблема не возникает.
Ответ или решение
Проблема с публикацией в мультисайте WordPress для пользователей с ролями редактора и администратора
Недавнее обновление WordPress до версии 3.6.1, а затем до 3.7, привело к возникновению серьезной проблемы для пользователей с ролями редактора и администратора на мультисайте. Несмотря на некоторые распараллеливания, как отключение плагинов и смена темы на 2012, проблема, вероятно, связана с неправильным управлением доступом на уровне базы данных.
Описание проблемы
Пользователи могут создавать посты на странице post-new.php
, за исключением случаев, когда они имеют доступ к более чем одному сайту в мультисайте. Как только они теряют доступ к какому-либо из своих сайтов, возможность создания постов на остающихся сайтах восстанавливается. В ходе попытки создать новый пост в таком состоянии возникают ошибки, связанные с отсутствующими свойствами объекта поста:
Notice: Trying to get property of non-object in D:\Websites\wp-admin\includes\post.php on line 471
Notice: Undefined property: stdClass::$ID in D:\Websites\wp-admin\post-new.php on line 73
Эти ошибки указывают на то, что объект поста не был успешно инициализирован, что препятствует корректной работе интерфейса.
Возможные причины и решения
-
Проблемы с базой данных:
- Очень возможно, что изменения, внесенные плагинами или темами, затрагивают структуру ролей и прав. Рекомендуется проверить таблицы базы данных, ответственные за роли и права (например,
wp_usermeta
иwp_options
). - Убедитесь, что у пользователей есть соответствующие права на публикацию в рамках всех подключенных сайтов.
- Очень возможно, что изменения, внесенные плагинами или темами, затрагивают структуру ролей и прав. Рекомендуется проверить таблицы базы данных, ответственные за роли и права (например,
-
Использование плагинов для управления ролями:
- Установка плагина, который отображает роли и их возможности, может помочь в выявлении графиков прав на разных сайтах. Попробуйте установить "User Role Editor" или аналогичный плагин для обеспечения визуального понимания прав доступа.
-
Анализ кода:
- Проверьте код в файлах
post.php
,post-new.php
, и других указанных, чтобы обнаружить возможные ошибки в логике обработки постов. - Если ошибка происходит из-за конфликта с кодом, необходима его отладка.
- Проверьте код в файлах
-
Сравнение установок:
- Настройте тестовую установку WordPress без плагинов и с стандартной темой. Сравните базу данных и настройки с рабочей версией, чтобы выявить различия в конфигурации.
-
Восстановление из резервной копии:
- Если проблема возникла после обновления, имеет смысл восстановить установку до версии, на которой все работало корректно. Сравните изменения и протестируйте на локальном сервере.
-
Обновление и патчи:
- Убедитесь, что все плагины и темы обновлены до последних версий, так как некоторые могут содержать исправления для ошибок, выявленных в предыдущих обновлениях.
Заключение
Для решения проблемы с публикацией постов в мультисайте WordPress пользователям с правами редактора и администратора необходимо систематически проанализировать структуру управления ролями и правами доступа. Важно внимательно следить за обновлениями и изменениями в базе данных, так как они могут оказывать значительное влияние на функциональность. Определите проблемы, используя подходы оптимизации и диагностики, и, при необходимости, восстановите работоспособную версию вашего сайта.