注意:1025行/var/www/html/mytheme/wp-includes/formatting.php中的数组转换为字符串

时间:2017-03-28 18:45:33

标签: php arrays wordpress meta-boxes

我尝试使用this script

在元数据库文件中添加变量而不是自定义字段ID

我在redux框架中添加了一些选项,以便更改自定义字段。

<?php
/*global from framework*/
global $redux;
/*custom fields options retrieved from redux framework*/
$custom_videourl = $redux['mytheme_videourl'];
$custom_duration = $redux['mytheme_duration'];
$custom_description = $redux['mytheme_desc'];
$fields = array(
    array(
     'label' => __( 'MP4/FLV & Youtube Url', 'framework' ),
     'desc' => __( 'Here you can add videos with mp4 format', 'framework' ),
     'id' => $custom_videourl,
     'type' => 'text'
    ),
    array(
     'label' => __( 'Video Duration', 'framework' ),
     'desc' => __( 'Example: 5:20', 'framework' ),
     'id' => $custom_duration,
     'type' => 'text'
    ),
    array(
     'label' => __( 'Video Description', 'framework' ),
     'id' => $custom_description,
     'desc' => __( 'Here you can write a description', 'framework' ),
     'type' => 'editor'
    )
);
$my_metaboxes = new custom_add_meta_box( 'mytheme_metaboxes', __( 'Video - Additional Information', 'framework' ), $fields, 'post', true );

但是在上面的例子中,我得到了注意:在第1025行的/var/www/html/mytheme/wp-includes/formatting.php中进行字符串转换

因此,如果我添加没有变量元数据的自定义字段,则工作正常,如下面的内容:

$fields = array(
    array(
     'label' => __( 'MP4/FLV & Youtube Url', 'framework' ),
     'desc' => __( 'Here you can add videos with mp4 format', 'framework' ),
     'id' => 'mytheme_videourl',
     'type' => 'text'
    ),
    array(
     'label' => __( 'Video Duration', 'framework' ),
     'desc' => __( 'Example: 5:20', 'framework' ),
     'id' => 'mytheme_duration',
     'type' => 'text'
    ),
    array(
     'label' => __( 'Video Description', 'framework' ),
     'id' => 'mytheme_desc',
     'desc' => __( 'Here you can write a description', 'framework' ),
     'type' => 'editor'
    )
);
$my_metaboxes = new custom_add_meta_box( 'mytheme_metaboxes', __( 'Video - Additional Information', 'framework' ), $fields, 'post', true );

我尝试过使用print_r但是metaboxes没有保存。有没有办法让第一个代码工作?使用变量而不是自定义字段ID?

1 个答案:

答案 0 :(得分:4)

你的redux变量之一似乎很可能包含一个Array而不是一个String。知道这一点,你只需要确定它是哪一个,并找出你要查找的实际数据的位置。

您可以调试此方法的一种方法是将所有三个redux变量显式转换为字符串。 (例如'id' => implode("***", $custom_videourl))。然后,一旦你弄清楚哪一个(或多个)是一个数组,你可能知道如何访问你真正想要的数据。

如果您没有为此做,我建议将其添加到您的wp-config.php文件中:define( 'WP_DEBUG_LOG', true );

这将为您创建调试日志。然后您可以退出(例如error_log( print_r( $custom_videourl )); 我相信它通常将debug.log文件存储在wp-content文件夹中。