Wordpress:ShortCode和变量

时间:2014-04-29 22:57:24

标签: wordpress shortcode

我试图将ShortCode中的值变为变量,以便在我的模板文件中使用它。我怎么能这样做?

这是我的代码:

在帖子中,短代码:

[reference_prix]1-214eddz[/reference_prix]

我的插件代码:

$bl_reference_prix = "";
add_shortcode('reference_prix', 'get_blref_prix');
function get_blref_prix( $atts, $reference = null ) { 
    global $bl_reference_prix;
    $bl_reference_prix = $reference;
}

但是$ bl_reference_prix仍然是空的。

我尝试使用$ GLOBAL [],但我发布了同样的问题。

用户在wordpress帖子中写入值并在模板文件中显示(或使用它)的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

我认为最佳做法是使用atts参数。

// Add Shortcode
function get_blref_prix( $atts ) {

    // Attributes
    extract( shortcode_atts(
        array(
            'bl_reference_prix' => '',
        ), $atts )
    );
}
add_shortcode( 'reference_prix', 'get_blref_prix' );

短代码的用户只需在编辑器中执行以下操作:

[reference_prix bl_reference_prix="some value by the user"]

然后也许您可以尝试使用Options API。使用后添加和删除。

答案 1 :(得分:0)

我已经这样做了,它现在正在工作:

//Plugin
function get_blref_prix( $atts ) {
    global $bl_plugin_refprix, $bl_plugin_refprix_up;
    // Attributes
    extract( shortcode_atts(
        array(
            'reference' => '',
            'up' => '',
        ), $atts )
    );

    $bl_plugin_refprix = $reference;
    $bl_plugin_refprix_up = $up;

}
add_shortcode( 'bl_refprix', 'get_blref_prix' );

在模板文件中(重要:在函数“the_content”之后!):

while(have_posts()):the_post();
    echo the_content();
endwhile;

echo $bl_plugin_refprix;

在帖子中:

[bl_refprix reference="123" up="456"]