Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Wordpress自定义post类型编码_Php_Wordpress_Encoding_Utf 8_Custom Post Type - Fatal编程技术网

Php Wordpress自定义post类型编码

Php Wordpress自定义post类型编码,php,wordpress,encoding,utf-8,custom-post-type,Php,Wordpress,Encoding,Utf 8,Custom Post Type,我在Wordpress中保存自定义帖子类型时遇到编码问题。当我点击update时,UTF-8字符(č、š、ž、ø等)被转换为“u010d”等 问题似乎出在形式上。我从帖子中收到了已经破译的字符 我已经用UTF-8编码保存了文件,并且在HTML的头部有用于编码的元标记 我能做些什么来解决这个问题 谢谢大家! 编辑: 我已经在表单中接受charset=“UTF-8” 标题: 功能: add_action( 'save_post', 'layered_images_save_info' ); fun

我在Wordpress中保存自定义帖子类型时遇到编码问题。当我点击update时,UTF-8字符(č、š、ž、ø等)被转换为“u010d”等

问题似乎出在形式上。我从帖子中收到了已经破译的字符

我已经用UTF-8编码保存了文件,并且在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;

}

}保存unicode字符似乎是json_encode的一项功能。你可以强迫它不要那样做

json_encode( $text, JSON_UNESCAPED_UNICODE );
如本主题所示:


或者根本不使用json_编码。WP内置了自己的序列化方法,用于在选项和元字段中保存数组。

您可以尝试为表单指定字符集:
。如果这没有改变任何事情,请在声明编码的html标题和处理收到的表单数据的函数后发布。更新:问题只发生在php循环中列出的字段上,这些字段的数据来自PosteTa字段。和使用jQuery动态添加的字段。此字段的名称如下:
层标题[]
@我已经更新了我的问题。请查收。