Пользователи не могут публиковать, будучи редактором или администратором на более чем одном сайте в многосайтовой сети.

Вопрос или проблема

На прошлой неделе я обновился до версии 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 

Эти ошибки указывают на то, что объект поста не был успешно инициализирован, что препятствует корректной работе интерфейса.

Возможные причины и решения

  1. Проблемы с базой данных:

    • Очень возможно, что изменения, внесенные плагинами или темами, затрагивают структуру ролей и прав. Рекомендуется проверить таблицы базы данных, ответственные за роли и права (например, wp_usermeta и wp_options).
    • Убедитесь, что у пользователей есть соответствующие права на публикацию в рамках всех подключенных сайтов.
  2. Использование плагинов для управления ролями:

    • Установка плагина, который отображает роли и их возможности, может помочь в выявлении графиков прав на разных сайтах. Попробуйте установить "User Role Editor" или аналогичный плагин для обеспечения визуального понимания прав доступа.
  3. Анализ кода:

    • Проверьте код в файлах post.php, post-new.php, и других указанных, чтобы обнаружить возможные ошибки в логике обработки постов.
    • Если ошибка происходит из-за конфликта с кодом, необходима его отладка.
  4. Сравнение установок:

    • Настройте тестовую установку WordPress без плагинов и с стандартной темой. Сравните базу данных и настройки с рабочей версией, чтобы выявить различия в конфигурации.
  5. Восстановление из резервной копии:

    • Если проблема возникла после обновления, имеет смысл восстановить установку до версии, на которой все работало корректно. Сравните изменения и протестируйте на локальном сервере.
  6. Обновление и патчи:

    • Убедитесь, что все плагины и темы обновлены до последних версий, так как некоторые могут содержать исправления для ошибок, выявленных в предыдущих обновлениях.

Заключение

Для решения проблемы с публикацией постов в мультисайте WordPress пользователям с правами редактора и администратора необходимо систематически проанализировать структуру управления ролями и правами доступа. Важно внимательно следить за обновлениями и изменениями в базе данных, так как они могут оказывать значительное влияние на функциональность. Определите проблемы, используя подходы оптимизации и диагностики, и, при необходимости, восстановите работоспособную версию вашего сайта.

Оцените материал
Добавить комментарий

Капча загружается...