短码,但不带等号?

时间:2011-02-19 作者:John

我知道这样创建一个快捷码:

function font_fam($atts, $content = null){ 
extract(shortcode_atts(array(
  \'f\' => \'\',  
  ), $atts ));

return \'<span style="font-family:\'.$f.\'">\'.$content.\'</span>\';

}
add_shortcode (\'f\',\'font_fam\');
使用它应该是这样的权利:

[f f="Arial"] Text Text [/f]
但有没有一种方法可以这样使用:

[f Arial] Text Text[/f]
[f Tahoma] Text Text [/f]
(跳过“f=”)

谢谢

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

Try this:

function font_fam($atts, $content = null) {

    extract(shortcode_atts(array(
            \'f\' => isset($atts[0]) ? $atts[0] : \'\' ,
            ), $atts));

    return \'<span style="font-family:\' . $f . \'">\' . $content . \'</span>\';
}

add_shortcode (\'f\',\'font_fam\');
SO网友:wyrfel

一种方法是通过挂接“the\\u content”过滤器来准备内容,该过滤器添加f= 一点

另一种可能是将您的短代码更改为[Tahoma]...[/Tahoma] 并完全跳过f,尽管这样会注册很多短代码。

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#