是否未显示快捷代码属性?

时间:2011-02-24 作者:Wordpressor

我正在研究我的第一个短代码,短代码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”,但我不确定,因为我不知道如何输出它们。

3 个回复
最合适的回答,由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\');

结束

相关推荐

Nested Shortcode Detection

如果您熟悉此代码<?php $pattern = get_shortcode_regex(); preg_match(\'/\'.$pattern.\'/s\', $posts[0]->post_content, $matches); if (is_array($matches) && $matches[2] == \'YOURSHORTCODE\') { //shortcode is being used }&#