using do_shortcode

时间:2017-08-11 作者:patoria324

我正在尝试向我的主题文件添加一个短代码,当我这样做时,我在前端得到了以下内容:

警告:strpos()要求参数1为字符串,数组在/home2/wafg440adhss/public\\u html/wp includes/shortcode中给出。php在线205

警告:preg\\u match\\u all()要求参数2为字符串,数组在/home2/wafg440adhss/public\\u html/wp includes/shortcode中给出。php第213行

警告:array\\u intersect():参数#2不是/home2/wafg440adhss/public\\html/wp includes/shortcode中的数组。php在线214

这是我在主题文件中使用的代码:

<?php echo do_shortcode([‘avatar_upload’]); ?>
此代码放置在我的表单编辑帐户中。我的主题中的php文件,位于wp content/themes/mytheme/woocommerce/myaccount文件夹中。我想放代码的地方是因为当我在WooCommerce生成的“my account.php”页面上时,我的主题会生成一个导航和一个名为“account details”的页面,显示在我的帐户上。php和ultimate最终成为mydomain。com/我的帐户/查看live时编辑帐户。瞧,我是对的,它正好显示了我想要它去的地方。。。。但它显示了错误!

我试图从WP用户头像插件(免费版本,可以从Wordpress插件下载,添加新内容并搜索),这样用户就可以上传自己的照片。插件说明使用以下代码将其添加到主题:

<?php do_action(\'edit_user_avatar\', $current_user); ?>
但是,当我使用该代码时,没有任何东西可以提交和保存化身。当我在页面上使用短代码时,它工作得很好,允许我提交和保存头像,但它只能放在我的帐户页面上我的woocommerce短代码的末尾,它不属于“帐户详细信息”导航,我不喜欢它。因此,由于短代码的功能,我想尝试将短代码添加到主题文件中,而不是给定的php代码中,但我遇到了这个错误。

有什么帮助吗?

1 个回复
SO网友:Mark Kaplun

根据米洛的评论,do_shortcode 期望参数与作为内容一部分插入的短代码完全相同,因此您尝试引用avatar_upload 是错误的,应该是do_shortcode(\'[avatar_upload]\');

此外,最好避免使用do_shortcode 并直接调用相关的官方API(如果插件有),尤其是因为短代码可能会根据上下文以不符合您需要的方式进行不同的处理。

结束

相关推荐

尝试将动态内容调用为ShortCode属性

我正在尝试向现有(第三方)短代码添加动态属性。短代码在同一页上出现多次。当我这样做时(在functions.php中),我可以得到第一个正确输出的短代码,但其他的则不行。function testOne(){ return do_shortcode(\'[abc type=\"contact\" orderby=\"menu_order\" order=\"asc\" style=\"list-post\" logic=\"and\" abc_tax_student=\"student1\