我正在研究我的第一个短代码,短代码API中的示例不适合初学者,所以我几乎可以肯定我做错了!
我的短代码:
function hello( $atts ) {
extract( shortcode_atts( array(
\'foo\' => \'something\',
\'bar\' => \'something else\',
), $atts ) );
return \'Hello, World!\';
return $foo;
}
add_shortcode(\'hw\', \'hello\');
我想输出:你好,世界!呵呵呵呵。
但它只显示Hello,World!
如何访问(&A);回显短代码属性以及最终如何设置默认值(我想我已经将默认值设置为“something”和“something other”,但我不确定,因为我不知道如何输出它们。
最合适的回答,由SO网友:keatch 整理而成
你回来了两次!第一个返回退出函数,因此您的快捷码总是输出“Hello World”。
正确代码:
function hello( $atts ) {
extract( shortcode_atts( array(
\'foo\' => \'something\',
\'bar\' => \'something else\',
), $atts ) );
print_r($atts); // Remove, when you are fine with your atts!
return \'Hello, World: \'.$atts[\'foo\'];
}
add_shortcode(\'hw\', \'hello\');
对于第二个问题:执行
print_r($atts)
在摘录部分之后!
SO网友:Simon Blackbourn
这应该可以做到:
function hello( $atts ) {
extract( shortcode_atts( array(
\'foo\' => \'Default\'
), $atts ) );
return \'Hello, World! \' . $foo . \'.\';
}
add_shortcode(\'hw\', \'hello\');
如果没有传入foo的值,则会将默认值设置为“default”。
返回行返回单词“hello world”,后跟foo的内容,然后是句号。
SO网友:Bainternet
您的shortcode函数很好,但由于您首先返回return \'Hello, World!\';
函数在运行前结束return $foo;
如果需要,可以稍微更改一下以查看属性:
function hello( $atts ) {
extract( shortcode_atts( array(
\'foo\' => \'something\',
\'bar\' => \'something else\',
), $atts ) );
return \'Hello, World! Foo: \' . $atts[\'foo\'] ;
}
add_shortcode(\'hw\', \'hello\');