Опубликовать видимость на основе ролей

Как сделать сообщение видимым только:

  1. Автор сообщения, независимо от его роли пользователя.

  2. Все пользователи от определенной роли пользователя.

В противном случае никто не сможет видеть сообщение.

Как мне подойти к этому.

Обратите внимание, что у меня есть только три роли пользователя в WP. Admin и еще 2 пользовательских ролей.

Предоставьте своим пользовательским ролям возможность «read_member_posts» или что-то еще. Затем вы можете применить фильтр к__состоянию ()

add_filter( 'the_content', 'my_wpse20347_filter' ); function my_wpse20347_filter( $content ) { global $post; if( author_can( $post->ID, 'edit_posts' ) || current_user_can( 'read_member_posts' ) ) { return $content; } else { // Everyone else sees this in place of the content. return '<p>Only members may view this post</p>'; } } 

У нас уже есть плагин в репозитории плагинов WPSE, написанный BAinternet, который делает именно это.