Private content

This plugin provides a shortcode to display a portion of a post content only to users of a specific role. For example, you can show the hidden text to Editors or to Authors or to any other WordPress role.

Please, note that an Administrator can read an Editor private content or a Subscriber private content, and so on. Same thing for Editor, Author, Contributor, and Subscriber: a higher role can read a lower role content.

Also you can show the hidden text only to a certain role. For example, you can mark a text as visible only to Contributors and hide it to higher roles, such as Administrators or Editors and so on.

As of version 3.0 you can mark a text as visible only to a certain user, using his login name.

As of version 4.0 you can mark a text as visible to multiple users, using their login names comma separated.

As of version 4.3 you can use either the usual private shortcode or the extra ubn_private, in case the first is already in use.

As of version 5.0 you can use the new option reverse to change the logic of the recipient option. If reverse is activated, it will not allow users in recipient read the private note.


Display this text to Administrators:

[private role="administrator"]Text for Administrators[/private]

Display this text to Administrators and Editors:

[private role="editor"]Text for Editors[/private]

Display this text to Administrators, Editors, and Authors:

[private role="author"]Text for Authors[/private]

Display this text to Administrators, Editors, Authors, and Contributors:

[private role="contributor"]Text for Contributor[/private]

Display this text to Administrators, Editors, Authors, Contributors, and Subscribers:

[private role="subscriber"]Text for Subscribers[/private]

Text only for specific roles

If you want to show a note only to a certain role, you have to use a <role>-only option.
In this way, for example, an Administrator or an Editor (roles higher than Author) cannot read a note for Authors only.

These are all the cases:

Display this text to Editors only:

[private role="editor-only"]Text for Editors only[/private]

Display this text to Authors only:

[private role="author-only"]Text for Authors only[/private]

Display this text to Contributors only:

[private role="contributor-only"]Text for Contributors only[/private]

Display this text to Subscribers only:

[private role="subscriber-only"]Text for Subscribers only[/private]

Display this text to Visitors only:

[private role="visitor-only"]Text for Visitors only[/private]

Text only for a specific user or multiple users

In the case you want to show a text only to a specific user, assign none to role and a login name to recipient:

[private role="none" recipient="login-name"]Text for a specific user only[/private]

Change login-name with the correct login name of the target user.

You can use a comma separated list of usernames to target certain users:

[private role="none" recipient="login-name1, login-name2, login-name3"]Text for specific users only[/private]

Change login-name1, login-name2, and login-name3 with the correct login names of the target users.

Text NOT for some users

If you want to show a text to all users but not to some, activate the option reverse, so that users added in the recipient option will not read the note.
For example.

[private role="none" recipient="alice,bob,charlie" reverse=1]We all read this message while Alice, Bob, and Charlie can't read it![/private]

Alternate text for non-targeted users

If you want to show an alternate text in case the reader can’t read, you can use:

[private role="author" alt="You have not rights to read this."]Text for authors only[/private]

Please, take note that the alternate text, if defined, is always publicly displayed.

The alternate text can contain some HTML tags. The list is:

  • b or strong for bold text;
  • em or i for italic text;
  • a for links, with href and title included. For href and title do not use double quote, but single quote.

Container for the text

Starting from version 2.4, the user can choose the container element for the text:

  • p is the default value;
  • div is another option. This element allows you use HTML elements like lists, headings, and more.
  • span is the final option. This element allows you to add private content inline.


Wrap the note inside a DIV:

[private container="div"]This is the text[/private]

Wrap the note inside a SPAN:

I met with a friend[private container="span"] (Jenny, from ninth grade)[/private] for lunch.

Standard WordPress user roles

WordPress roles in descending order:

  • Administrator
  • Editor
  • Author
  • Contributor
  • Subscriber

Capabilities created by Private Content plugin

These are the capabilities created by this plugin:

  • read_ubn_editor_notes
  • read_ubn_author_notes
  • read_ubn_contributor_notes
  • read_ubn_subscriber_notes

Privacy Policy

This plugin does not collect any user data.


Many thanks to:

About this plugin

Name of the plugin:Private Content
Plugin version:5.0
This plugin requiresWordPress 3.0
Tested up toWordPress 5.0.3
Last updated:December 9, 2018 (2 months ago)
Compatibility:Unknown with WordPress 5.0.3
Tags:content, private
Rating:5 stars


The stable version is hosted on the official WordPress repository: Private Content.

The development version is hosted on GitHub. Forks are welcome!


You can get support in this forum.

If you’re happy using this plugin, make a small donation via PayPal.

One reply on “Private content”

Comments are closed.