wp_unique_prefixed_id

The timeline below displays how wordpress function wp_unique_prefixed_id has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.4

/**
 * Generates an incremental ID that is independent per each different prefix.
 *
 * It is similar to `wp_unique_id`, but each prefix has its own internal ID
 * counter to make each prefix independent from each other. The ID starts at 1
 * and increments on each call. The returned value is not universally unique,
 * but it is unique across the life of the PHP process and it's stable per
 * prefix.
 *
 * @since 6.4.0
 *
 * @param string $prefix Optional. Prefix for the returned ID. Default empty string.
 * @return string Incremental ID per prefix.
 */
function wp_unique_prefixed_id($prefix = '')
{
    static $id_counters = array();
    if (!is_string($prefix)) {
        wp_trigger_error(__FUNCTION__, sprintf('The prefix must be a string. "%s" data type given.', gettype($prefix)));
        $prefix = '';
    }
    if (!isset($id_counters[$prefix])) {
        $id_counters[$prefix] = 0;
    }
    $id = ++$id_counters[$prefix];
    return $prefix . (string) $id;
}