Переписывание основных функций WordPress: Изменение личных сообщений
Я пытаюсь переписать немного основных функций WordPress. Я использую WordPress 3.9.2 и считаю себя посредником в программировании WordPress.
Это изображение, которое объяснит, что я пытаюсь сделать:
В настоящее время, когда для записи устанавливается значение "Закрыто", она скрывается от просмотра, доступ к ней возможен только по ссылке и для особо привилегированных пользователей. Это не то, чего хочет мой клиент, они хотят "Участника". (Норвежский: Medlemmer) вместо этого функциональность, где эта опция сделает сообщения исключительно видимыми для этой конкретной роли доступа. Таким образом, для анонимного пользователя вы увидите некоторые сообщения, но при входе в систему в качестве участника вы увидите все эти сообщения.
Я также пытаюсь удалить опцию "Защищен паролем", так как это не относится к веб-сайту моего клиента, но это не является приоритетом.
Итак, мой вопрос: Любые идеи о том, что мне нужно будет сделать, чтобы изменить это с плагин? Мои текущие мысли находятся в строках крючков фильтра.
Любая помощь приветствуется.
1 answers
Прежде всего, я должен сказать, что личные сообщения уже соответствуют вашим потребностям, потому что зарегистрированные пользователи с соответствующими возможностями будут видеть сообщения на домашней странице, в архивах, в поиске и так далее.
Надлежащая возможность - это 'read_private_posts'.
Это ограничение по умолчанию назначается администраторам и редакторам. Итак, у ваших пользователей-"участников" должна быть одна из этих 2 ролей, или, возможно, вы можете назначить эту возможность разным ролям.
На самом деле, вы можете добавить его в стандарт роли, использующие add_cap()
или вы можете зарегистрировать пользовательскую роль (см. здесь ) и назначить этой роли функции, которые вы хотите назначить своим участникам.
Это говорит о том, что для настройки отображения метабокса на странице администратора поста (удаление опции для защиты паролем, переименование опции "Личный"...) наиболее эффективным способом является
- Создайте функцию, которая выводит пользовательский метабокс. Создайте новую функцию, назовите ее чем-то вроде
custom_post_submit_meta_box()
, скопируйте содержимое из ядраpost_submit_meta_box()
и измените то, что вам нужно. -
Удалите стандартный метабокс и добавьте пользовательский:
add_action( 'dbx_post_advanced', function( $post ) { // only for 'post' post type if ( $post->post_type !== 'post' ) return; // remove the standard remove_meta_box( 'submitdiv', 'post', 'side' ); // add the custom add_meta_box( 'custom_submitdiv', __( 'Publish' ), 'custom_post_submit_meta_box', // the name of your custom function 'post', 'side', 'core' ); });