我尝试使用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?
答案 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文件夹中。