0
我在保存WordPress的自定义帖子类型的编码有问题。当我点击更新时,UTF-8字符(č,š,ž,ø等)被转换为“u010d”等。WordPress的自定义帖子类型编码
该问题似乎与形式。我通过POST收到已损坏的字符。
我已经保存了UTF-8编码的文件,并且在HTML的HEAD中有用于编码的元标记。
我能做些什么来解决这个问题?
谢谢!
编辑:
我在形式accept-charset="UTF-8"
。
HEAD:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
功能:
add_action('save_post', 'layered_images_save_info');
function layered_images_save_info($post_id) {
// verify nonce
if (! wp_verify_nonce($_POST['layered_images_box_nonce'], basename(__FILE__))) {
return $post_id;
}
// check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return $post_id;
}
// check permissions
if ('layered_images' == $_POST[ 'post_type'] && current_user_can('edit_post', $post_id)) {
/* Save Slider Images */
//echo "";print_r($_POST['gallery_img']);exit;
//$bla = html_entity_decode($_POST[ 'layer_titles' ], ENT_QUOTES, "utf-8");
$gallery_images = (isset($_POST[ 'gallery_img' ]) ? $_POST[ 'gallery_img' ] : '');
$layer_opacity = (isset($_POST[ 'layer_opacity' ]) ? $_POST[ 'layer_opacity' ] : '');
$layer_color = (isset($_POST[ 'layer_color' ]) ? $_POST[ 'layer_color' ] : '');
//print_r($bla);exit;
$gallery_images = strip_tags(json_encode($gallery_images));
$visible_layers = (isset($_POST[ 'visible_layers' ]) ? $_POST[ 'visible_layers' ] : '');
$visible_layers = strip_tags(json_encode($visible_layers));
$visible_user_layers = (isset($_POST[ 'visible_user_layers' ]) ? $_POST[ 'visible_user_layers' ] : '');
$visible_user_layers = strip_tags(json_encode($visible_user_layers));
$layer_titles = (isset($_POST[ 'layer_titles' ]) ? $_POST[ 'layer_titles' ] : '');
$layer_titles = json_encode($layer_titles) ;
update_post_meta($post_id, "_layer_gallery_images", $gallery_images);
update_post_meta($post_id, "_layer_visible_layers", $visible_layers);
update_post_meta($post_id, "_visible_user_layers", $visible_user_layers);
update_post_meta($post_id, "_layer_titles", $layer_titles);
update_post_meta($post_id, "_layer_opacity", $layer_opacity);
update_post_meta($post_id, "_layer_color", $layer_color);
} else {
return $post_id;
}
}
您可以尝试指定表单的字符集:'
更新:问题只出现在与php循环列出的字段中,来自postmeta字段的数据。并在与jQuery动态添加的字段。这个字段的名字是这样的:'layer_titles []'。 @MSTannu我更新了我的问题。请检查。 – 2014-09-11 05:36:56