如何在另一个短代码函数内编写短代码函数

时间:2014-07-24 07:38:58

标签: php wordpress shortcode

我在这个函数里面有一个带有标签[form-edit]的自定义短代码我需要执行一个简短的插件,例如[Form id =" 10"]。下面给出的是我的非工作代码。

add_shortcode('form-edit', 'form_edit_function');
function form_edit_function(){
    $fid = $_GET['fid'];
    echo do_shortcode('[Form id="'.$fid.'"]');
}

如何使它成为可能?请帮忙

2 个答案:

答案 0 :(得分:0)

我认为问题是在函数中使用$ _GET,因为在调用the_content或您要添加的任何函数时可能无法使用它。

function form_edit_function( $atts , $content = null ) {
// Extra attributes into variables
extract( shortcode_atts(
    array(
        'fid'           => '' // the default value if not passed
    ), $atts )
);

$html = do_shortcode('[Form id="' . $fid . '"]');

// store in variable and return other echo will not 
// put it in the correct place within your content
return $html;

}

// Use in post content or other places as [form-edit fid="1][/form-edit]
add_shortcode( 'form-edit', 'form_edit_function' );

答案 1 :(得分:0)

通常,短代码通过RETURN语句而不是ECHO发送它的输出。如果您回显它,它将被发送到Wordpress请求的正常操作顺序之外。它只会被推入输出的标题中,甚至可能看不到。另外,你知道你在这里有两个短代码,“form-edit”和“Form”,对吧?对于短代码,两者都是非常糟糕的名字。短代码名称区分大小写。你确定你的第二个短片是“形式”而不是“形式”吗?