所以我们遇到了这个奇怪的WP错误,其中重写规则在我们的生产环境中没有正确刷新。在调试时,我发现这个有趣的问题我认为可能是原因。
$serialized_value = maybe_serialize( $value, $option );
if ($option == 'rewrite_rules') {
error_log(print_r($serialized_value,true));
}
显示与
不同的内容$serialized_value = maybe_serialize( $value, $option );
if ($option == 'rewrite_rules') {
print_r($serialized_value);
}
error_log版本更大且版本正确。 print_r较小,不是很大且版本不正确。这是WP中用于序列化的函数。
function maybe_serialize( $data, $option ) {
if ( is_array( $data ) || is_object( $data ) ) {
$newdata = serialize( $data );
return $newdata;
}
// Double serialization is required for backward compatibility.
// See https://core.trac.wordpress.org/ticket/12930
// Also the world will end. See WP 3.6.1.
if ( is_serialized( $data, false ) )
return serialize( $data );
return $data;
}
为什么它会以不同的方式显示?