내가 원시 필드를 확인하는 경우에는부울 및 정수 직렬화
$obj = array(
'array' => array(1, 'zwei', !!3),
'string' => 'abc',
'bool' => true,
'bool2' => false,
'integer' => 1,
'integer2' => 17
);
update_post_meta($post_ID, 'my-key', $obj);
같은 배열을 저장하는 워드 프레스 update_post_meta을 사용하고 이후에 문자열이 있어야한다 동안 나는
a:6:{s:5:"array";a:3:{i:0;i:1;i:1;s:4:"zwei";i:2;s:1:"1";}s:6:"string";s:3:"abc";s:4:"bool";s:1:"1";s:5:"bool2";s:1:"0";s:7:"integer";i:1;s:8:"integer2";i:17;}
얻을
a:6:{s:5:"array";a:3:{i:0;i:1;i:1;s:4:"zwei";i:2;b:1;}s:6:"string";s:3:"abc";s:4:"bool";b:1;s:5:"bool2";b:0;s:7:"integer";i:1;s:8:"integer2";i:17;}
모든 부울은 문자열 (b:1 = s:1:"1"
)
이 문제는 특정 WordPress 설치에서만 발생하며 모든 문제가 아닙니다. 나는 또한 또한 get_post_meta
get_post_meta($post_ID, 'my-key', true);
을 사용하고 거짓 (명백하게) is_bool 반환
편집과 값 체크인 올바른 (반환 b:1
)
를 작동하고 serialize 기능 확인했습니다를 단지 또한 정수가 문자열로 저장됩니다.
특정 플러그인의 'sanitize_meta'필터가 설치에 적용되고 있습니까? 'add_filter ('sanitize_')에 대한 코드베이스 검색 – Tom
어떤 WordPress 버전을 사용하고 있습니까? wp를 업데이트 한 다음 다시 확인할 수 있습니까? 3.5.2를 설치했고 3.6으로 업데이트 한 후 문제가있었습니다. .1 문제가 해결되었습니다 –
WordPress> = 3.6은 [wp_unslash] (http://core.trac.wordpress.org/browser/tags/3.6.1/wp-includes/meta.php#L119)를 사용하는 반면 3.5.2 여전히 [stripslashes_deep] (http://core.trac.wordpress.org/browser/tags/3.5.2/wp-includes/meta.php#L119) – Xaver