Title: If Shortcode
Author: geomagas
Published: <strong>2014 年 3 月 2 日</strong>
Last modified: 2024 年 8 月 2 日

---

搜索插件

**该插件尚未通过WordPress的最新3个主要版本进行测试**。 当与较新版本的WordPress一起
使用时，可能不再受到维护或支持，并且可能会存在兼容性问题。

![](https://s.w.org/plugins/geopattern-icon/if-shortcode.svg)

# If Shortcode

 作者：[geomagas](https://profiles.wordpress.org/geomagas/)

[下载](https://downloads.wordpress.org/plugin/if-shortcode.0.3.0.zip)

 * [详情](https://cn.wordpress.org/plugins/if-shortcode/#description)
 * [评价](https://cn.wordpress.org/plugins/if-shortcode/#reviews)
 *  [安装](https://cn.wordpress.org/plugins/if-shortcode/#installation)
 * [开发进展](https://cn.wordpress.org/plugins/if-shortcode/#developers)

 [支持](https://wordpress.org/support/plugin/if-shortcode/)

## 描述

This plugin provides an [if] shortcode to conditionally render content. The syntax
is the following:

    ```
    [if condition1 condition2=false condition3]{content}[/if]
    ```

Conditions are passed as attribute names. Multiple conditions evaluate to the result
of ORing all of them. In other words, if at least one condition evaluates to the
desired boolean result, {content} is rendered, otherwise it is discarded.
 Attribute
values determine if we want the condition to be true or false. A value of `'0'`,`'
false'`, `''` (the empty string), `'null'` or `'no'` means we expect the condition
to be false. Anything else, including the absense of a value, is interpreted as 
true.

For example, suppose that we want to include a sentence in a post, but only for 
anonymous visitors:

    ```
    [if is_user_logged_in=no]The Sentence.[/if]
    ```

It also provides an [else] shortcode and an [eitherway] one for use inside [if] 
blocks. [else] will render its content if the condition evaluates to false, and [
eitherway] will render its content regardless of the evaluation result.
 When used
outside an [if] block, these shortcodes behave as if the whole content is surrounded
by an [if] shortcode whose condition evaluates to true. In other words, an [else]
shortcode would not render any content, while a [eitherway] one would. You can use
as many of these shortcodes as you like in a single [if] block, which gives you 
the ability to do things like:

    ```
        - Am I logged in?
        [if is_user_logged_in]- Yes you are.
        [else]- No you are not.
        [/else][eitherway]- I'm sorry, what?
        [/eitherway]- I said YOU A-R-E LOGGED IN!!!
        [else]- YOU ARE NOT LOGGED IN!!! What's the matter with you?[/else][/if]
    ```

A multitude of conditions are supported out-of-the-box. The following evaluate to
the result of the corresponding [WordPress Conditional Tag](https://developer.wordpress.org/themes/basics/conditional-tags/),
using the no-parameter syntax:

    ```
        is_single
        is_singular
        is_page
        is_home
        is_front_page
        is_privacy_policy
        is_attachment
        is_category
        is_tag
        is_tax
        is_author
        is_archive
        is_year
        is_month
        is_date
        is_day
        is_time
        is_feed
        is_search
        is_sticky
        is_preview
        has_term
        has_excerpt
        comments_open
        pings_open
        is_404
        is_user_logged_in
        is_super_admin
        is_multi_author
        is_multisite
        is_main_site
        is_child_theme
    ```

For example, the evaluation of the `is_page` condition is equivalent to calling `
is_page()` with no parameter.

### Extending

The functionality of the plugin can be extended by other plugins, by means of adding
custom conditions through filters. To add a custom condition, a filter hook must
be defined in the following manner:

    ```
    add_filter($if_shortcode_filter_prefix.'my_condition','my_condition_evaluator');

    function my_condition_evaluator($value) {
        $evaluate=.... /* add your evaluation code here */
        return $evaluate;
    }
    ```

Then, you can use your custom condition like so:

    ```
    [if my_condition]{content}[/if]
    ```

A big thanks to M Miller for the [`normalize_empty_atts()`](http://wordpress.stackexchange.com/a/123073/39275)
function.

## 安装

Install the plugin using [the usual method described in the codex](https://wordpress.org/documentation/article/manage-plugins/#installing-plugins-1).

## 评价

![](https://secure.gravatar.com/avatar/a9ae342bd77a3304012103d22ffefbe1c20dd162c2b3b3e55b101fb328091a21?
s=60&d=retro&r=g)

### 󠀁[Lifesaver](https://wordpress.org/support/topic/lifesaver-17/)󠁿

 [jivyb](https://profiles.wordpress.org/jivyb/) 2016 年 12 月 23 日

I needed to show a login form only to people not logged in. This little plugin was
perfect! Now I’m getting all kinds of ideas for what I can do with it. Thanks!

![](https://secure.gravatar.com/avatar/f83127a1d6743502aa12fa843bf9ca18326926a3b86a9a85d2e002e3e8256547?
s=60&d=retro&r=g)

### 󠀁[Just what I was looking for!](https://wordpress.org/support/topic/just-what-i-was-looking-for-260/)󠁿

 [McCarthy-Wood](https://profiles.wordpress.org/mccarthy-wood/) 2016 年 9 月 3 日

Simple and clean to use!

![](https://secure.gravatar.com/avatar/adcf81f4f102f58505db81fc841246e3d939ab12ee7ed7ef178ecc061fb73346?
s=60&d=retro&r=g)

### 󠀁[Very easy to use](https://wordpress.org/support/topic/very-easy-to-use-173/)󠁿

 [J. Christopher Guritz](https://profiles.wordpress.org/guritz/) 2016 年 9 月 3 
日

If you are wanting to hide or show links or text based upon logged in state, author
or quite a few other “is” conditions this plugin is perfect. Thanks G J

 [ 阅读所有7条评价 ](https://wordpress.org/support/plugin/if-shortcode/reviews/)

## 贡献者及开发者

「If Shortcode」是开源软件。 以下人员对此插件做出了贡献。

贡献者

 *   [ geomagas ](https://profiles.wordpress.org/geomagas/)

[帮助将「If Shortcode」翻译成简体中文。](https://translate.wordpress.org/projects/wp-plugins/if-shortcode)

### 对开发感兴趣吗?

您可以[浏览代码](https://plugins.trac.wordpress.org/browser/if-shortcode/)，查看
[SVN仓库](https://plugins.svn.wordpress.org/if-shortcode/)，或通过[RSS](https://plugins.trac.wordpress.org/log/if-shortcode/?limit=100&mode=stop_on_copy&format=rss)
订阅[开发日志](https://plugins.trac.wordpress.org/log/if-shortcode/)。

## 更新日志

#### 0.3.0

 * Improvement: Refactored code for PHP 5.4+
 * Addition: Added some more tags

#### 0.2.1

 * Improvement: Removed unnecessary closure from line 87 ([thanks datacate](https://wordpress.org/support/topic/installation-error-84)!)

#### 0.2.0

 * Addition: [else] shortcode
 * Addition: [eitherway] shortcode

#### 0.1.0

 * First release.

## 额外信息

 *  版本 **0.3.0**
 *  最后更新：**2 年前**
 *  活跃安装数量 **200+**
 *  WordPress 版本 ** 3.0.1 或更高版本 **
 *  已测试的最高版本为 **6.6.5**
 *  PHP 版本 ** 5.4 或更高版本 **
 *  语言
 * [English (US)](https://wordpress.org/plugins/if-shortcode/)
 * 标签
 * [conditional](https://cn.wordpress.org/plugins/tags/conditional/)[conditional-tags](https://cn.wordpress.org/plugins/tags/conditional-tags/)
   [else](https://cn.wordpress.org/plugins/tags/else/)[if](https://cn.wordpress.org/plugins/tags/if/)
   [shortcode](https://cn.wordpress.org/plugins/tags/shortcode/)
 *  [高级视图](https://cn.wordpress.org/plugins/if-shortcode/advanced/)

## 评级

 5 星（最高 5 星）。

 *  [  6 条 5 星评价     ](https://wordpress.org/support/plugin/if-shortcode/reviews/?filter=5)
 *  [  0 条 4 星评价     ](https://wordpress.org/support/plugin/if-shortcode/reviews/?filter=4)
 *  [  0 条 3 星评价     ](https://wordpress.org/support/plugin/if-shortcode/reviews/?filter=3)
 *  [  0 条 2 星评价     ](https://wordpress.org/support/plugin/if-shortcode/reviews/?filter=2)
 *  [  0 条 1 星评价     ](https://wordpress.org/support/plugin/if-shortcode/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/if-shortcode/reviews/#new-post)

[查看全部评论](https://wordpress.org/support/plugin/if-shortcode/reviews/)

## 贡献者

 *   [ geomagas ](https://profiles.wordpress.org/geomagas/)

## 支持

有话要说吗？是否需要帮助？

 [查看支持论坛](https://wordpress.org/support/plugin/if-shortcode/)

## 捐助

您愿意支持这个插件的发展吗?

 [ 捐助此插件 ](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=5SD6XG9JD5TS8)