我试图在我的主题文件中添加一个短代码,当我这样做时,我会在前端得到以下内容:
警告: strpos()期望参数1是字符串,在第205行的/home2/wafg440adhss/public_html/wp-includes/shortcodes.php中给出数组
警告: /home2/wafg440adhss/public_html/wp-includes/shortcodes.php ()要求参数2为字符串,在第213行的preg_match_all中给出数组
警告:在第214行的/home2/wafg440adhss/public_html/wp-includes/shortcodes.php中,参数2不是array_intersect():
这是我在主题文件中使用的代码:
<?php echo do_shortcode([‘avatar_upload’]); ?>这段代码被放置在我的主题中的表单-Edt-Account.php文件中,该文件位于wp-content/themes/mytheme/woocommerce/myaccount文件夹中。我认为放置代码的地方是因为当我在WooCommerce生成的" my-account.php“页面上时,我的主题是一个导航和一个名为”帐户详细信息“的页面,这个页面显示在my-Account.php上,最终结果是mydomain.com/ my -帐户/编辑-帐户。低,看,我是对的,它正好显示了我想要它的位置,to....but,它显示了错误!
我试图拉的短代码是来自WP用户阿凡达插件(免费版本,可以从Wordpress插件下载,添加新的和搜索它),以便用户可以上传自己的照片。插件说要使用以下代码将其添加到主题中:
<?php do_action('edit_user_avatar', $current_user); ?>但是当我使用那个代码时,就没有什么可以提交和保存化身了。当我使用一个页面上的短代码时,它完美地工作,允许我提交和保存化身,但是它只能放在我的woocommerce的短代码的末尾,在我的帐户页面上,它不属于“帐户详细信息”导航,我不喜欢它。因此,由于使用了短代码函数,我想尝试将这些短代码添加到主题文件中,而不是给定的php代码中,但是我得到了这个错误。
有什么帮助吗?
发布于 2017-08-11 05:14:57
根据Milo的评论,do_shortcode期望参数就像作为内容的一部分插入的短代码一样,因此您引用avatar_upload的尝试是错误的,应该是do_shortcode('[avatar_upload]');。
此外,如果插件有相应的官方API,最好直接避免使用do_shortcode并调用相关的官方API,特别是因为基于上下文的处理方式可能与您的需要不同。
https://wordpress.stackexchange.com/questions/276557
复制相似问题