這個外掛並未在最新的 3 個 WordPress 主要版本上進行測試。開發者可能不再對這個外掛進行維護或提供技術支援,並可能會與更新版本的 WordPress 產生使用上的相容性問題。

mmbrs

外掛說明

The mmbrs plugin allows you to restrict content access using shortcodes.

Content may be restricted based on role, capability, user meta, and logged-in status.

What makes mmbrs different:

  • Restriction based on role, capability, user meta, and logged-in status is
    all in one place.
  • You are able to restrict content based on if a user is=’not’. For
    example, Show this content if a user is not an administrator.
  • You can pass multiple variables to the roles and capabilities shortcodes.
    For example, Show this content to users who are subscribers,
    contributors, or editors.
  • By default, any content within these four shortcodes is not displayed in
    feeds. You may also set the showinfeed=’yes’ attribute to show the
    content in feeds.
  • It is as lean as I could get it, with logic ordering to cut down on
    processing. Which isn’t saying much, but if you’ve got suggestions, I’m
    open to hearing them.

The four mmbrs shortcodes are:

  • [mmbrs_logged_in]
  • [mmbrs_roles]
  • [mmbrs_capabilities]
  • [mmbrs_user_meta]

[mmbrs_logged_in]

[mmbrs_logged_in]Content.[/mmbrs_logged_in]

  • Attribute: none
    • Shows content to logged in users.

[mmbrs_logged_in is=’not’]Content.[/mmbrs_logged_in]

  • Attribute: is
    • Optional.
    • is only accepts not.
    • Shows content to logged out users.
    • Case insensitive.

[mmbrs_logged_in showinfeed=’yes’]Content.[/mmbrs_logged_in]

  • Attribute: showinfeed
    • Optional.
    • showinfeed only accepts yes.
    • Shows content in the feed and ignores all other attributes when displaying in the feed. (If it is not being displayed in a feed, all of the attributes take effect.)
    • Case insensitive.

[mmbrs_roles]

[mmbrs_roles]Content.[/mmbrs_roles]

  • Attribute: none
    • Returns nothing.

[mmbrs_roles equals=’subscriber’]Content.[/mmbrs_roles]

  • Attribute: equals
    • Required.
    • Accepts multiple. e.g. equals=’subscriber,contributor’
    • Shows content to users with the ‘subscriber’ role.
    • Case sensitive.

[mmbrs_roles is=’not’ equals=’subscriber’]Content.[/mmbrs_roles]

  • Attribute: is
    • Optional.
    • Shows content to users who do not have the ‘subscriber’ role.
    • is only accepts not.
    • Case insensitive.

[mmbrs_roles showinfeed=’yes’]Content.[/mmbrs_roles]

  • Attribute: showinfeed
    • Optional.
    • Shows content in the feed and ignores all other attributes when displaying in the feed. (If it is not being displayed in a feed, all of the attributes take effect.)
    • showinfeed only accepts yes.
    • Case insensitive.

[mmbrs_capabilities]

[mmbrs_capabilities]Content.[/mmbrs_capabilities]

  • Attribute: none
    • Returns nothing.

[mmbrs_capabilities can=’delete_others_posts’]Content.[/mmbrs_capabilities]

  • Attribute: can
    • Required.
    • Shows content to users with the ‘delete_others_posts’ capability.
    • Accepts multiple. e.g. can=’delete_others_posts,edit_others_posts’
    • Case sensitive.

[mmbrs_capabilities is=’not’ can=’delete_others_posts’]Content.[/mmbrs_capabilities]

  • Attribute: is
    • Optional.
    • Shows content to users who do not have the ‘delete_others_posts’ capability.
    • is only accepts not.
    • Case insensitive.

[mmbrs_capabilities showinfeed=’yes’]Content.[/mmbrs_capabilities]

  • Attribute: showinfeed
    • Optional.
    • Shows content in the feed and ignores all other attributes when displaying in the feed. (If it is not being displayed in a feed, all of the attributes take effect.)
    • showinfeed only accepts yes.
    • Case insensitive.

[mmbrs_user_meta]

[mmbrs_user_meta]Content.[/mmbrs_user_meta]

  • Attribute: none
    • Returns nothing.

[mmbrs_user_meta key=’first_name’][/mmbrs_user_meta]

  • Attribute: key (with no content)
    • Required. (key attribute is required. Content is not required.)
    • Shows a logged-in user’s first_name meta value.
    • Does NOT accept multiple values when content is null/empty.
    • Case sensitive.

[mmbrs_user_meta key=’first_name’]Content.[/mmbrs_user_meta]

  • Attribute: key (with content)
    • Required. (key attribute is required. Content is not required.)
    • Shows content to logged-in user with the first_name meta value.
    • Accepts multiple as OR. e.g. key=’first_name,last_name’
    • Case sensitive.

[mmbrs_user_meta is=’not’ key=’first_name’]Content.[/mmbrs_user_meta]

  • Attribute: is
    • Optional.
    • Shows content to users who do not have the first_name meta value.
    • is only accepts not.
    • Case insensitive.

[mmbrs_user_meta is=’not’ key=’first_name’ equals=’Ben’]Content.[/mmbrs_user_meta]

  • Attribute: equals
    • Required.
    • Shows content to users who do not have the first_name user meta of ‘Ben’.
    • Case sensitive.

[mmbrs_user_meta showinfeed=’yes’]Content.[/mmbrs_user_meta]

  • Attribute: showinfeed
    • Optional.
    • Shows content in the feed and ignores all other attributes when displaying in the feed. (If it is not being displayed in a feed, all of the attributes take effect.)
    • showinfeed only accepts ‘yes’.
    • Case insensitive.

Other Notes:

For every shortcode, except [mmbrs_logged_in], if a user is not logged in, the shortcode will return nothing. The exception is when using is=’not’ in [mmbrs_logged_in], as in [mmbrs_logged_in is=’not’]Content.[/mmbrs_logged_in]

By default, everything is hidden from feeds unless showinfeed=’yes’ is defined.

Motivation for this plugin:

I wrote this plugin to fill some holes, reduce some unnecessary functions, and fix some minor bugs I found in other plugins. I now use this, and only this, to control all shortcode-based content access on my membership-style websites.

The Members plugin checks roles by checking capabilities. You are not supposed to do that. The proper way of checking roles is included here. Notes on this:

Aside from that, I love and use the Members plugin and suggest you check it out for other role- and capability-based content access management.

I removed a bunch of stuff from the User Meta Shortcodes plugin that I didn’t want. If you want the additional functionality, I recommend that plugin.

In the end, I wanted very clear control of in-post content via shortcodes. I wasn’t finding anything that was totally stripped down. So I wrote this.

Inspiration and Credits:

 

安裝方式

  1. Upload plugin-name.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

常見問題集

None. Yet.

使用者評論

這個外掛目前沒有任何使用者評論。

參與者及開發者

以下人員參與了開源軟體〈mmbrs〉的開發相關工作。

參與者

將〈mmbrs〉外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

1.0

  • 2014.10.01
  • Released