Intereting Posts
добавление метаданных с использованием плагина на вершину головы Почему мои текстовые сообщения всегда возвращают одни и те же результаты? Разрешить анонимным пользователям отправлять сообщения на мой сайт для модерации Как мне показать текущее значение базы данных Metabox? Где я должен хранить глобальные данные для моего многостраничного плагина WordPress? Портал пациентов с использованием wordpress Как перемещать эскизы изображений в пользовательскую папку для пользовательского типа сообщения Как создать уникальный идентификатор пользователя Wp_Create_User Как ленить Загрузка только выбранных изображений на выбранные страницы? С какими крючками я могу адресовать все сообщения из всех пользовательских типов сообщений при их публикации? Замораживание WP_Query Использование WordPress с Apache за обратным прокси-сервером nginx 2 Различная таксономия с иерархическими отношениями <a> и <img> не работает Перемещение разделяемых кнопок (в Jetpack) в начало сообщения?

Могут ли простые параметры сохранения администратора в Multisite?

Я разрабатываю настраиваемый плагин на многоуровневой установке, к сожалению, я не так привык к работе.

Проблема заключается в том, что мне нужно добавить поле в страницу профиля пользователя, и мне нужно, чтобы значение, которое будет храниться, будет храниться как пользовательское мета, а также как опция (внутри таблицы wp_options).

Все работает нормально, если я Супер Администратор, опция будет сохранена, и я могу использовать их позже в моей теме, но когда я пытаюсь сохранить значения с помощью функции update_option() я не могу это сделать, и я не могу хранить ценности.

Здесь вы можете найти мой экспериментальный код, но обратите внимание, что даже если у меня нет проблем с функцией update_usermeta() я не могу сохранить свою информацию в таблице wp_options …

 function ohw_update_field( $user_id ){ $field = 'side_banner_' . $user_id; $side_ad = $_POST[ $name ]; update_usermeta( $user_id, $name, $side_ad ); update_option( $name, $side_ad ); } add_action( 'personal_options_update', 'ohw_update_field' ); add_action( 'edit_user_profile_update', 'ohw_update_field' ); 

Как вы можете видеть, я пытаюсь использовать $user_id для создания уникального поля в таблице, возможно, я начну использовать массив для сериализации информации в уникальном поле, но я хотел бы понять, почему администратор сайт сети не может сохранить опцию …

Я имею в виду, что, прочитав в Codex, пользователь должен иметь возможность manage_options для доступа к этой базе данных, поэтому почему только супер администратор может это сделать?

Заранее благодарю за все ответы и у вас отличный день!

 update_option( $name, $side_ad ); 

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

В результате, редактирование пользователя на блоге / сайте A не изменит вариант на блоге / сайте B, так же, как рисование стены зеленым в вашем доме не делает такой же зеленый стен в моем доме. Если это не так, то обновление названия одного сайта будет обновлять название всех сайтов.

Так:

Я хочу хранить пользовательские данные

Храните его в метателе

Я хочу хранить данные в блоге

Сохраните его в опции. Экран редактирования пользователя не является подходящим местом для этой опции, поместите его на экран настроек в меню настроек.

Я хочу хранить данные, которые влияют на всю установку независимо от того, какой блог / пользователь / сайт

Используйте update_site_option и сначала проверьте, является ли это is_multisite() используя is_multisite() . Не храните большое количество данных таким образом. Опять же, эти параметры не относятся к странице редактирования / обновления. Не помещайте страницы параметров в обычные параметры панели мониторинга, помещайте их в панель администрирования сети