我不想在<pre>标记中显示快捷代码

时间:2013-12-04 作者:T Kien

我有一个主题,我想向观众展示一下短码格式是如何使用的<pre> 标签但当我加入短代码时<pre>, 它显示了shortcode的功能。我只想用纯文本显示短代码格式。如何做到这一点?

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

A) 如果要显示短码语法,可以尝试在编辑器中使用双括号编写:

<pre>[[shortcode foo="bar"]]</pre>
然后显示为

<pre>[shortcode foo="bar"]</pre>
它不会激活短代码回调。

B) 或者,如果您需要一些额外的格式,可以通过快捷码定义自己的漂亮格式:

function pretty_shortcode( $atts, $content ) 
{        
    $atts = shortcode_atts( 
                array( \'class => \'pretty_shortcode\' ), 
                $atts, 
                \'pretty_shortcode\' 
            );

    // input
    $content           = wp_kses( $content, array() );
    $atts[\'class\']     = esc_attr( $atts[\'class\'] );

    // output                       
    return sprintf( \'<pre class="%s">%s</pre>\', $atts[\'class\'], $content );             
}

add_shortcode( \'pretty_shortcode\', \'pretty_shortcode\' );   
然后,您可以在编辑器中编写以下内容:

[pretty_shortcode class="pretty"]
    [gallery ids="123,321" link="file"]
[/pretty_shortcode]
输出为:

<pre class="pretty">
    [gallery ids="123,321" link="file"]
</pre>

SO网友:Jonas Lundman

更疯狂但可靠的解决方法。可以粘贴不可见空格字符&#173; 在第一个支架之后。在呈现代码时,我使用这种方法来解决许多渲染问题。在javascipt中,语法模型是:

content = content.replace(\'[\', \'[\' + String.fromCharCode(\'173\'));
棘手的部分是以unicode格式获取字符并粘贴到PHP协议中。否则­;&#173; 将渲染或转换为- 连字符该字符对于光标不可见,因此不能单独选择。但是,只需使用javascript生成一次,然后复制[g 在编辑器中进行零件和粘贴/替换。

在wordpress中,通过在单个图像上粘贴不可见的空格作为标题,可以使用相同的技巧始终使用无标题的元素。

这是空格的短代码。粘贴到wordpress编辑器中,然后向后删除每个字符。在g 光标停止,然后继续删除括号。。。

[­gallery link="none"]
注意,如果您看到- 相反,您的编码错误,或者您的设备在副本中破坏了信息­­­­­;

结束

相关推荐

Wrap php in shortcode

我正在使用一个插件,该插件将根据用户位置显示内容,我正在尝试将其添加到facebook小部件代码中。该插件使用了一个短代码来包装将要显示的内容,下面是我到目前为止的内容。我知道我做错了什么,如果你能给我指出正确的方向,我将不胜感激。if (($user_id) and ($app_id) and ($secret_code)){ $user_data = get_option(\'wt_recent_fb_posts_user\'); echo do_shortc