是否有可能使短代码不区分大小写?

时间:2013-10-14 作者:Thovex

我想知道是否有可能使shortcode不区分大小写,应该非常直接,但我想:

[test=1] 
以书面形式工作

[TeST=1], [TEST=1] 
如果是,我该怎么做?

2 个回复
最合适的回答,由SO网友:birgire 整理而成

下面是另一个不区分大小写的短码的简单想法:

/**
 * Make a shortcode case insensitive via the the_content filter
 *
 * @param string $content
 * @return string $content
 */
function my_case_insensitive_shortcode( $content )
{
    $sc   = \'test\'; // Edit this shortcode name to your needs

    $from = \'[\'. $sc ; 
    $to   = $from;

    if( stristr( $content, $from ) )    
        $content = str_ireplace( $from, $to, $content );

    return $content;

}

add_filter( \'the_content\', \'my_case_insensitive_shortcode\', 10 );
您也可以使用preg_replace(), 如果您需要更精确的替换。

示例:

在帖子编辑器中编写此内容

[test id="1"]

[tEsT id="2"]

[TeSt id="3"]
do_shortcode 过滤器优先激活11:

[test id="1"]

[test id="2"]

[test id="3"]

SO网友:Matt

如果你说的是你自己创建的一个短代码,你必须注册所有可能的情况。

如果希望所有短代码都不区分大小写,则必须修改Wordpress core includes中的短代码处理代码(或者重写它,我想……)

这个问题Are shortcodes case-sensitive? 有一些关于必须修改的必要函数的信息。

结束

相关推荐

Loading shortcode with ajax

如果浏览器的屏幕大小特定,我会尝试加载幻灯片,也就是说,我不希望幻灯片加载到更小的移动屏幕上。幻灯片放映插件提供了一个短代码:<?php echo do_shortcode(\'[metaslider id=\"8302\"]\'); ?> 但当我试着加载它时。load(),它只是输出字符串,不运行php。因此,环顾四周,似乎有几个帖子与此相关:call shortcode in javascriptWhy might a plugin's 'do_shortcode