Make WordPress Core


Ignore:
Timestamp:
01/17/2025 12:10:08 AM (5 months ago)
Author:
peterwilsoncc
Message:

Options/Meta APIs: Document type juggling of meta data.

Document that unserialised data types are stored as strings in the database and returned as such by the meta data functions. For example, setting meta data to the integer value 1 will be returned as "1" when subsequently queried via get_metadata() and the related functions.

Props sukhendu2002, azaozz, jrf, rodrigosprimo.
Fixes ticket:61950.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/user.php

    r59633 r59657  
    11521152 * @param int    $user_id    User ID.
    11531153 * @param string $meta_key   Metadata name.
    1154  * @param mixed  $meta_value Metadata value. Must be serializable if non-scalar.
     1154 * @param mixed  $meta_value Metadata value. Arrays and objects are stored as serialized data and
     1155 *                           will be returned as the same type when retrieved. Other data types will
     1156 *                           be stored as strings in the database:
     1157 *                           - false is stored and retrieved as an empty string ('')
     1158 *                           - true is stored and retrieved as '1'
     1159 *                           - numbers (both integer and float) are stored and retrieved as strings
     1160 *                           Must be serializable if non-scalar.
    11551161 * @param bool   $unique     Optional. Whether the same key should not be added.
    11561162 *                           Default false.
     
    12011207 *               An empty array if a valid but non-existing user ID is passed and `$single` is false.
    12021208 *               An empty string if a valid but non-existing user ID is passed and `$single` is true.
     1209 *               Note: Non-serialized values are returned as strings:
     1210 *               - false values are returned as empty strings ('')
     1211 *               - true values are returned as '1'
     1212 *               - numbers (both integer and float) are returned as strings
     1213 *               Arrays and objects retain their original type.
    12031214 */
    12041215function get_user_meta( $user_id, $key = '', $single = false ) {
Note: See TracChangeset for help on using the changeset viewer.