Files
medicalalert-web-reloaded/wp/wp-content/plugins/wp-media-folder/class/import/compat.php
2024-07-16 13:57:46 +00:00

70 lines
1.9 KiB
PHP

<?php
/**
* Implementation for WordPress functions missing in older WordPress versions.
*/
if (!function_exists('wp_slash_strings_only')) {
/**
* Adds slashes to only string values in an array of values.
*
* Compat for WordPress < 5.3.0.
*
* @param mixed $value Scalar or array of scalars.
* @return mixed Slashes $value
* @since 0.7.0
*
*/
function wp_slash_strings_only($value)
{
return map_deep($value, 'addslashes_strings_only');
}
}
if (!function_exists('addslashes_strings_only')) {
/**
* Adds slashes only if the provided value is a string.
*
* Compat for WordPress < 5.3.0.
*
* @param mixed $value
* @return mixed
* @since 0.7.0
*
*/
function addslashes_strings_only($value)
{
return is_string($value) ? addslashes($value) : $value;
}
}
if (!function_exists('map_deep')) {
/**
* Maps a function to all non-iterable elements of an array or an object.
*
* Compat for WordPress < 4.4.0.
*
* @param mixed $value The array, object, or scalar.
* @param callable $callback The function to map onto $value.
* @return mixed The value with the callback applied to all non-arrays and non-objects inside it.
* @since 0.7.0
*
*/
function map_deep($value, $callback)
{
if (is_array($value)) {
foreach ($value as $index => $item) {
$value[$index] = map_deep($item, $callback);
}
} elseif (is_object($value)) {
$object_vars = get_object_vars($value);
foreach ($object_vars as $property_name => $property_value) {
$value->$property_name = map_deep($property_value, $callback);
}
} else {
$value = call_user_func($callback, $value);
}
return $value;
}
}