Using $variable in shortcode

时间:2018-03-18 作者:Jan Westdijk

我将使用函数外部的$变量。在shortcode函数中。

这就是我要做的:

function shortcodevariable( $atts ){
    return \'echo $variable\';
}
add_shortcode(\'variable\', \'shortcodevariable\');
我想我们需要一个阵列,但我现在不需要,有人能帮忙吗?

非常感谢你。

3 个回复
SO网友:Nathan Johnson

如果您使用的是PHP>5.3,那么可以在the_content 滤器需要在$variable 已定义且在the_content 筛选器已启动。

add_filter( \'the_content\', function( $content ) use ( $variable ) {
  return str_replace( \'[variable][/variable]\', $variable, $content );
} );
短代码是在the_content 以11的优先级挂起。因此,任何优先级为10或更低的都将在此之前运行。如果希望在之前运行回调wpautop, 使用小于10的优先级。

没有理由add_shortcode() 因为这段代码用之前的变量替换了shortcodedo_shortcode() 正在运行。

过滤器最好放置在主题函数中。php文件,但如果出于某种原因$variable 函数不可用。php,那么这个小技巧应该可以奏效。

SO网友:Joe

我刚刚发现了在短代码中使用外部变量的解决方案。

function show_shortcode_variable(){
    global $variable;
    return $variable;
}
add_shortcode(\'variable\', \'show_shortcode_variable\');
所以如果你的$variable = "foo"; 有人在Wordpress中键入:

[variable]
。。。然后他们会在页面或帖子上看到以下输出:

foo
您的代码基本正常,但不需要echo 最后,您需要将变量定义为global 在功能内。

这有帮助吗?

SO网友:maheshwaghmare

您已丢失shortcode_atts 并在短代码中传递参数。E、 g级

function shortcodevariable( $atts ){

   $data = shortcode_atts(              array(
                        \'attribute-1\' => \'\',
                        \'attribute-2\' => \'\',    
            ), $data            );

  return $data[\'attribute-1\'];
}
add_shortcode(\'variable\', \'shortcodevariable\');

Usage

在帖子、页面等中。

[variable attribute-1=\'okay\']
在php文件中

echo do_shortcode ( "[variable attribute-1=\'<?Php echo $variable; ?>\']" );
最近我创建了一个帖子Create a simple shortcode in WordPress.

结束

相关推荐

Primary menu shortcode name

我有一个快捷码,可以将菜单放在我想要的地方,但它只在主菜单上起作用。我不想对主菜单使用快捷键,我想创建一个名为shortcodemenu的新菜单,并在使用时让快捷键调用它。function print_menu_shortcode($atts, $content = null) { extract(shortcode_atts(array( \'name\' => null, \'class\' => null ), $atts)); return wp_nav_menu( a