将字符串传递给插件函数

时间:2011-06-07 作者:Badr Hari

我有一个简单的功能来显示图像:

function helloworld() {
    echo \'<img src="\'.$link.\'" alt=".$alt." />\';
}
我想向函数传递strings link和alt,如下所示:

<?php helloworld(\'link=www.google.com&alt=picture\'); ?>
我怎样才能做到这一点?

1 个回复
最合适的回答,由SO网友:EAMann 整理而成

我同意这更像是一个基本的PHP问题,但我可以看出您的来龙去脉。许多WordPress函数都像您正在尝试的那样接受查询字符串格式的参数,因此最好确切了解它们是如何执行的。特别是短代码函数。

首先,您需要修改helloworld() 方法接受参数。然后通过WordPress函数将它们与默认值进行匹配然后,您可以在其他地方访问它们:

function helloworld( $args = \'\' ) {
    $defaults = array(
        \'link\' => \'www.google.com\',
        \'alt\' = \'picture\'
    );

    wp_parse_args( $args, $defaults );

    extract( $args, EXTR_SKIP );

    echo \'<img src="\' . $link . \'" alt="\' . $alt . \'" />\';
}
设置$args = \'\' 在函数中,表示参数是可选的。如果没有传入任何内容,则函数将使用您定义的默认值。

所以如果你打电话helloworld(\'link=www.facebook.com\') 你会看到<img src="www.facebook.com" alt="picture" />. 如果你打电话helloworld(\'alt=link\') 你会看到<img src="www.google.com" alt="link" />. 记住,该函数将使用$defaults 数组,如果不使用其他内容覆盖它。

这个extract() 函数将提取数组的每个元素并将其放入自己的变量中。不过,您不需要这样做。如果你把它删掉,你只会引用$args[\'link\'] 而不是$link. 这真的取决于你。

结束

相关推荐

使用functions.php使子菜单项成为管理菜单中的主链接

我正在尝试使用这些函数自定义管理区域。php文件,使我的客户更容易处理。我之前收到的一个请求是将一些子菜单移到主导航中,希望能够完成。例如,我想让小部件和菜单出现在主导航中,而不是作为外观的子菜单。然后,我将一起删除“外观”选项卡。我已经能够删除选项卡,但无法为小部件和菜单创建新按钮。即使我可以得到帮助,而不是从技术上移动它们,而是创建一个新按钮并自己设置链接(例如,对于菜单->/nav Menus.php)。这有可能吗?谢谢