get_option() WP 1.5.0

Отримує значення вказаної опції.

Функція отримує дані з кешу, якщо це можливо, якщо ні, дані беруться з Бази Даних.

Якщо опція зберігається як серіалізований рядок, вона при отриманні автоматично буде розкодована.

Будь-які скалярні значення буде повернуто у вигляді рядків.

Значення, що повертається, можна відфільтрувати через хук option_(option) .

1 раз – 0.0027969 сек
(дуже повільно) | 50000 разів – 2.56 сек
(швидко) |
PHP 7.4.8, WP 5.6.2

Повертає

Разное.

  • Значение опции.
  • false— коли зазначеної опції немає чи вдалося отримати її значення.

Використання

get_option ($ option, $ default);
$option
(рядок) (обов’язковий)

Назву опції, значення якої потрібно отримати. Деякі з доступних опцій:

  • admin_email– e-mail адміністратора блогу.
  • blogname– Назва блогу. Встановлюється у налаштуваннях.
  • blogdescription– Опис блогу. Встановлюється у налаштуваннях.
  • blog_charset– Кодування блогу. Встановлюється у налаштуваннях.
  • date_format– Формат дати. Встановлюється у налаштуваннях.
  • default_category– категорія постів за промовчанням. Встановлюється у налаштуваннях.
  • home– адреса домашньої сторінки блогу. Встановлюється в основних установках.
  • siteurl– Адреса WordPress. Встановлюється в основних установках.

    Примітка: siteurl відрізняється від get_bloginfo(‘siteurl’) (який повертає url домашньої сторінки блогу). І не відрізняється від get_bloginfo(‘wpurl’) .

  • template– Назва поточної теми.
  • start_of_week– день, з якого починається тиждень. Встановлюється в основних установках.
  • upload_path– каталог завантаження за замовчуванням. Встановлюється у налаштуваннях.
  • posts_per_page– Максимальна кількість постів на сторінці. Встановлюється у налаштуваннях читання.
  • posts_per_rss– максимальна кількість постів, що виводяться у фід. Встановлюється у налаштуваннях читання.

Повний список опцій дивіться тут .

$default
(рядок/число/логічний)
Значення за промовчанням, яке потрібно повернути, якщо опції в базі даних не існує.


Типово: false

Приклади

0

#1 Виведемо назву блогу у тезі H1:

<h1><?php echo get_option('blogname'); ?></h1>

OR short variant:

<h1><?= get_option('blogname'); ?></h1>
0

#2 Виведемо кодування блогу:

<p>Поточне кодування: <?php echo get_option('blog_charset'); ?> </p>
0

#3 Отримаємо email адміністратора сайту в змінну $admin_email:

$admin_email = get_option('admin_email');

нотатки

  • Global. wpdb. $wpdb WordPress database abstraction object.

список змін

З версії 1.5.0Введено.

Код get_option() WP 6.0.2

function get_option( $option, $default = false ) {
	Global $wpdb;

	if (is_scalar($option)) {
		$ option = trim ($ option);
	}

	if (empty($option)) {
		return false;
	}

	/*
	 * Until a proper _deprecated_option() function can be introduced,
	 * redirect requests to deprecated keys to the new, correct ones.
	 */
	$deprecated_keys = array(
		'blacklist_keys' => 'disallowed_keys',
		'comment_whitelist' => 'comment_previously_approved',
	);

	if ( ! wp_installing() && isset( $deprecated_keys[ $option ] ) ) {
		_deprecated_argument(
			__FUNCTION__,
			'5.5.0',
			sprintf(
				/* translators: 1: Deprecated option key, 2: New option key. */
				__( 'The "%1$s" option key has been renamed to "%2$s".' ),
				$option,
				$deprecated_keys[ $option ]
			)
		);
		return get_option ($ deprecated_keys [$ option], $ default);
	}

	/**
	 * Filters є значенням існуючої опції перед тим, як він trieved.
	 *
	 * The dynamic portion of hook name, `$option`, refers to the option name.
	 *
	 * Returning a truthy value from the filter will effectively short-circuit retrieval
	 * and return the passed value instead.
	 *
	 * @ Since 1.5.0
	 * @since 4.4.0 The `$option` parameter was added.
	 * @since 4.9.0 The `$default` parameter was added.
	 *
	 * @param mixed $pre_option Встановлення до відновленого звільнення з опції значення. This differs
	 * від `$default`, який використовується як fallback value in the event
	 * the option doesn't exist elsewhere in get_option().
	 * Default false (до skip past the short-circuit).
	 * @param string $option Option name.
	 * @param mixed $default fallback value return if option does no exist.
	 * Default false.
	 */
	$pre = apply_filters( "pre_option_{$option}", false, $option, $default );

	if ( false !== $pre ) {
		return $pre;
	}

	if ( defined( 'WP_SETUP_CONFIG' ) ) {
		return false;
	}

	// Distinguish between `false` as a default, and not passing one.
	$passed_default = func_num_args() > 1;

	if ( ! wp_installing() ) {
		// Prevent non-existent options from triggering multiple queries.
		$notoptions = wp_cache_get( 'notoptions', 'options' );

		if ( isset ( $ notoptions [ $ option ] ) ) {
			/**
			 * Filters the default value for an option.
			 *
			 * The dynamic portion of hook name, `$option`, refers to the option name.
			 *
			 * @ Since 3.4.0
			 * @since 4.4.0 The `$option` parameter was added.
			 * @since 4.7.0 The `$passed_default` parameter був added to distinguish between `false` value and default parameter value.
			 *
			 * @param mixed $default Default value return if the option does not exist
			 * в thebase.
			 * @param string $option Option name.
			 * @param bool $passed_default Was `get_option()` passed a default value?
			 */
			return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
		}

		$alloptions = wp_load_alloptions();

		if ( isset( $alloptions[ $option ] ) ) {
			$value = $alloptions[$option];
		} else {
			$ value = wp_cache_get ($ option, 'options');

			if ( false === $value ) {
				$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );

				// Has to be get_row() instead of get_var() because of funkiness with 0, false, null values.
				if ( is_object( $row ) ) {
					$value = $row->option_value;
					wp_cache_add($option, $value, 'options');
				} else { // Option does not exist, so we must cache its non-existence.
					if ( ! is_array( $notoptions ) ) {
						$notoptions = array();
					}

					$notoptions[ $option ] = true;
					wp_cache_set( 'notoptions', $notoptions, 'options' );

					/** Цей filter is documented в wp-includes/option.php */
					return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
				}
			}
		}
	} else {
		$suppress = $wpdb->suppress_errors();
		$row = $wpdb->get_row( $wpdb->prepare( "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", $option ) );
		$wpdb->suppress_errors( $suppress );

		if ( is_object( $row ) ) {
			$value = $row->option_value;
		} else {
			/** Цей filter is documented в wp-includes/option.php */
			return apply_filters( "default_option_{$option}", $default, $option, $passed_default );
		}
	}

	// If home is not set, use siteurl.
	if ( 'home' === $option && '' === $value ) {
		return get_option( 'siteurl');
	}

	if ( in_array( $option, array( 'siteurl', 'home', 'category_base', 'tag_base' ), true ) ) {
		$ value = untrailingslashit ($ value);
	}

	/**
	 * Filters the value of an existing option.
	 *
	 * The dynamic portion of hook name, `$option`, refers to the option name.
	 *
	 * @ since 1.5.0 As 'option_'. $setting
	 * @ Since 3.0.0
	 * @since 4.4.0 The `$option` parameter was added.
	 *
	 * @param mixed $value Value of the option. If stored serialized, it will be
	 * unserialized prior to being returned.
	 * @param string $option Option name.
	 */
	return apply_filters( "option_{$option}", maybe_unserialize( $value ), $option );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *