Переписывание основных функций WordPress: Изменение личных сообщений


Я пытаюсь переписать немного основных функций WordPress. Я использую WordPress 3.9.2 и считаю себя посредником в программировании WordPress.

Это изображение, которое объяснит, что я пытаюсь сделать:

Explanatory image

В настоящее время, когда для записи устанавливается значение "Закрыто", она скрывается от просмотра, доступ к ней возможен только по ссылке и для особо привилегированных пользователей. Это не то, чего хочет мой клиент, они хотят "Участника". (Норвежский: Medlemmer) вместо этого функциональность, где эта опция сделает сообщения исключительно видимыми для этой конкретной роли доступа. Таким образом, для анонимного пользователя вы увидите некоторые сообщения, но при входе в систему в качестве участника вы увидите все эти сообщения.

Я также пытаюсь удалить опцию "Защищен паролем", так как это не относится к веб-сайту моего клиента, но это не является приоритетом.

Итак, мой вопрос: Любые идеи о том, что мне нужно будет сделать, чтобы изменить это с плагин? Мои текущие мысли находятся в строках крючков фильтра.

Любая помощь приветствуется.

 1
Author: GauteR, 2014-08-22

1 answers

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

Надлежащая возможность - это 'read_private_posts'.

Это ограничение по умолчанию назначается администраторам и редакторам. Итак, у ваших пользователей-"участников" должна быть одна из этих 2 ролей, или, возможно, вы можете назначить эту возможность разным ролям.

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

Это говорит о том, что для настройки отображения метабокса на странице администратора поста (удаление опции для защиты паролем, переименование опции "Личный"...) наиболее эффективным способом является

  1. Создайте функцию, которая выводит пользовательский метабокс. Создайте новую функцию, назовите ее чем-то вроде custom_post_submit_meta_box(), скопируйте содержимое из ядра post_submit_meta_box() и измените то, что вам нужно.
  2. Удалите стандартный метабокс и добавьте пользовательский:

    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'
      );
    
    });
    
 2
Author: gmazzap, 2014-08-22 10:56:16