_deprecated_function()WP 2.5.0

Выводит сообщение что указанная функция WP устарела (перешла в разряд deprecated).

Функцию можно использовать в плагинах/темах, если у вас появились устаревшие функции, которые в следующих версиях могут уже не использоваться.

Для вывода сообщения об ошибке константа WP_DEBUG в wp-config.php должна быть включена (равна true).

Хук deprecated_function_run, нужен когда надо что-либо сделать при вызове устаревшей функции, вне зависимости от того включена ли константа WP_DEBUG выключена. Так, например, можно использовать функцию, чтобы записывать возможные ошибки вызова устаревших (запрещенных) функций куда-нибудь в лог.

Работает на основе базовой функции PHP trigger_error().

Есть еще аналогичная функция: _deprecated_argument()

Внутренняя функция — эта функция рассчитана на использование самим ядром. Не рекомендуется использовать эту функцию в своем коде.

Возвращает

null.

Использование

_deprecated_function( $function, $version, $replacement );
$function(строка) (обязательный)
Имя вызываемой функции. Обычно указывается __FUNCTION__, если функция вызывается изнутри другой функции или __METHOD__, если из метода класса.
$version(строка) (обязательный)
Версия WordPress с которой функция помечена как устаревшая (deprecated).
$replacement(строка)
Название функции, которая должна быть использована вместо текущей.
По умолчанию: null

Примеры

0

#1 Пример использования в ядре

function logIO( $io, $msg ) {
	_deprecated_function( __FUNCTION__, '3.4', 'error_log()' );

	if ( ! empty( $GLOBALS['xmlrpc_logging'] ) )
		error_log( $io . ' - ' . $msg );
}

Список изменений

С версии 2.5.0 Введена.
С версии 5.4.0 This function is no longer marked as "private".
С версии 5.4.0 The error type is now classified as E_USER_DEPRECATED (used to default to E_USER_NOTICE).

Код _deprecated_function() WP 6.5.2

function _deprecated_function( $function_name, $version, $replacement = '' ) {

	/**
	 * Fires when a deprecated function is called.
	 *
	 * @since 2.5.0
	 *
	 * @param string $function_name The function that was called.
	 * @param string $replacement   The function that should have been called.
	 * @param string $version       The version of WordPress that deprecated the function.
	 */
	do_action( 'deprecated_function_run', $function_name, $replacement, $version );

	/**
	 * Filters whether to trigger an error for deprecated functions.
	 *
	 * @since 2.5.0
	 *
	 * @param bool $trigger Whether to trigger the error for deprecated functions. Default true.
	 */
	if ( WP_DEBUG && apply_filters( 'deprecated_function_trigger_error', true ) ) {
		if ( function_exists( '__' ) ) {
			if ( $replacement ) {
				$message = sprintf(
					/* translators: 1: PHP function name, 2: Version number, 3: Alternative function name. */
					__( 'Function %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.' ),
					$function_name,
					$version,
					$replacement
				);
			} else {
				$message = sprintf(
					/* translators: 1: PHP function name, 2: Version number. */
					__( 'Function %1$s is <strong>deprecated</strong> since version %2$s with no alternative available.' ),
					$function_name,
					$version
				);
			}
		} else {
			if ( $replacement ) {
				$message = sprintf(
					'Function %1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead.',
					$function_name,
					$version,
					$replacement
				);
			} else {
				$message = sprintf(
					'Function %1$s is <strong>deprecated</strong> since version %2$s with no alternative available.',
					$function_name,
					$version
				);
			}
		}

		wp_trigger_error( '', $message, E_USER_DEPRECATED );
	}
}