WPSEO_Option_Llmstxt::validate_optionprotectedYoast 1.0

All concrete classes must contain a validate_option() method which validates all values within the option.

Метод класса: WPSEO_Option_Llmstxt{}

Хуков нет.

Возвращает

array. The clean option with the saved value.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->validate_option( $dirty, $clean, $old );
$dirty(массив) (обязательный)
New value for the option.
$clean(массив) (обязательный)
Clean value for the option, normally the defaults.
$old(массив) (обязательный)
Old value of the option.

Код WPSEO_Option_Llmstxt::validate_option() Yoast 28.4

protected function validate_option( $dirty, $clean, $old ) {

	foreach ( $clean as $key => $value ) {
		switch ( $key ) {
			case 'other_included_pages':
				if ( isset( $dirty[ $key ] ) ) {
					$items = $dirty[ $key ];
					if ( ! is_array( $items ) ) {
						$items = json_decode( $dirty[ $key ], true );
					}

					if ( is_array( $items ) ) {
						$items = array_slice( $items, 0, $this->get_other_included_pages_limit() );
						foreach ( $items as $item ) {
							$validated_id = WPSEO_Utils::validate_int( $item );

							if ( $validated_id === false || $validated_id === 0 ) {
								continue;
							}

							$clean[ $key ][] = $validated_id;
						}
					}
				}

				break;
			case 'about_us_page':
			case 'contact_page':
			case 'terms_page':
			case 'privacy_policy_page':
			case 'shop_page':
				if ( isset( $dirty[ $key ] ) ) {
					$int = WPSEO_Utils::validate_int( $dirty[ $key ] );
					if ( $int !== false && $int >= 0 ) {
						$clean[ $key ] = $int;
					}
				}
				elseif ( isset( $old[ $key ] ) ) {
					$int = WPSEO_Utils::validate_int( $old[ $key ] );
					if ( $int !== false && $int >= 0 ) {
						$clean[ $key ] = $int;
					}
				}
				break;
			case 'llms_txt_selection_mode':
				if ( isset( $dirty[ $key ] ) && in_array( $dirty[ $key ], [ 'auto', 'manual' ], true ) ) {
					$clean[ $key ] = $dirty[ $key ];
				}
				break;
		}
	}

	return $clean;
}