WPSEO_Custom_Fields::get_custom_fieldspublic staticYoast 1.0

Retrieves the custom field names as an array.

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

Возвращает

Массив. The custom fields.

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

$result = WPSEO_Custom_Fields::get_custom_fields();

Код WPSEO_Custom_Fields::get_custom_fields() Yoast 28.2

public static function get_custom_fields() {
	global $wpdb;

	// Use cached value if available.
	if ( self::$custom_fields !== null ) {
		return self::$custom_fields;
	}

	self::$custom_fields = [];

	/**
	 * Filters the number of custom fields to retrieve for the drop-down
	 * in the Custom Fields meta box.
	 *
	 * @param int $limit Number of custom fields to retrieve. Default 30.
	 */
	$limit = apply_filters( 'postmeta_form_limit', 30 );

	/**
	 * Filter: 'wpseo_custom_fields_pre_query' - Filters the custom-fields lookup before the database query runs.
	 *
	 * Returning a non-null array short-circuits the default `SELECT DISTINCT meta_key`
	 * query against `wp_postmeta`. On very large postmeta tables this can be a way
	 * to supply a pre-cached list or an alternative query to improve loading times.
	 *
	 * @param string[]|null $custom_fields Pre-computed list of meta_key names, or null to run the default query.
	 * @param int           $limit         The configured result limit; honor it if running a custom query.
	 */
	$fields = apply_filters( 'wpseo_custom_fields_pre_query', null, $limit );

	if ( ! is_array( $fields ) ) {
		$sql    = "SELECT DISTINCT meta_key
			FROM $wpdb->postmeta
			WHERE meta_key NOT BETWEEN '_' AND '_z' AND SUBSTRING(meta_key, 1, 1) != '_'
			LIMIT %d";
		$fields = $wpdb->get_col( $wpdb->prepare( $sql, $limit ) );
	}

	/**
	 * Filters the custom fields that are auto-completed and replaced as replacement variables
	 * in the meta box and sidebar.
	 *
	 * @param string[] $fields The custom field names.
	 */
	$fields = apply_filters( 'wpseo_replacement_variables_custom_fields', $fields );

	if ( is_array( $fields ) ) {
		self::$custom_fields = array_map( [ 'WPSEO_Custom_Fields', 'add_custom_field_prefix' ], $fields );
	}

	return self::$custom_fields;
}