如何在短码中传递多个值?

时间:2012-02-16 作者:Ajay Patel

全部的

我正在使用formidable 插件和在一个页面上,我需要使用5个短代码。

[frm-entry-delete-link id=9 page_id=25 field_key=hsn108]
[frm-entry-delete-link id=12 page_id=25 field_key=cp7pi]
[frm-entry-delete-link id=13 page_id=25 field_key=ksa9qv]
[frm-entry-delete-link id=14 page_id=25 field_key=9zuf6o]
[frm-entry-delete-link id=15 page_id=25 field_key=w8w7op]
是否可以在一个简短的代码中传递这些内容?

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

您可以创建自己的短代码,它将为您保存所有硬编码的短代码:

add_shortcode("my_five_forms","my_five_forms_handler");
function my_five_forms_handler($atts,$content =null){
    $con =  "[frm-entry-delete-link id=9 page_id=25 field_key=hsn108]
        [frm-entry-delete-link id=12 page_id=25 field_key=cp7pi]
        [frm-entry-delete-link id=13 page_id=25 field_key=ksa9qv]
        [frm-entry-delete-link id=14 page_id=25 field_key=9zuf6o]
        [frm-entry-delete-link id=15 page_id=25 field_key=w8w7op]";

    return do_shortcode($con);
}

   // and use it like this:
   [my_five_forms]
或者创建一个将动态呈现所有表单的短代码

add_shortcode("my_n_forms","my_n_forms_handler");
function my_n_forms_handler($atts,$content=null){
    extract( shortcode_atts( array(
        \'id_page_key\' => \'\',
    ), $atts ) );
    $con = \'\';
    foreach((array)$id_page_key as $f){
        $f = split(":",$f);
        $con .=  \' [frm-entry-delete-link id="\'.$f[0].\'" page_id="\'.$f[1].\'" field_key="\'.$f[2].\'"]\';
    }

    return do_shortcode($con);
}

//and you use it like this:
   [my_n_forms id_page_key="12:25:hsn108,13:25:cp7pi"]

SO网友:Stephen Harris

简而言之,没有。短代码通常都有它们希望处理的键和一套处理它们的方法。

例如:

[frm-entry-delete-link id=9 page_id=25 field_key=hsn108 id2=12 page_id2=25 field_key2=cp7pi]
无法工作,因为快捷码无法识别密钥id2,page_id2,field_key2. 也不能使用此方法:

[frm-entry-delete-link id=9 page_id=25 field_key=hsn108 id=12 page_id=25 field_key=cp7pi]
因为后面的值替换第一个值。

你可以通过创建一个自定义的短代码来绕过这个问题do_shortcode每一个都是,但实际上列出5个短代码是可以的,而自定义短代码将是不必要的浪费,而且可能比单独列出它们更令人困惑。

SO网友:Chris

阅读短码API,它解释了关于使用和开发短码所需了解的一切。

http://codex.wordpress.org/Shortcode_API

结束

相关推荐

How to execute a shortcode?

我有一个WordPress选项,可以存储一些数据,例如:<h1>Header</h1> <p>Paragraph</p> [shortcodesomething/] [shortcode]Contents[/shortcode] 我正在使用显示此选项的值echo get_option(\'my_option\'));.当然,短代码不起作用,我想知道如何迫使他们做他们应该做的事情?echo do_shortcode(get_o