ACF\CLI

JsonCommand::resolve_keys_for_type │ private │ ACF 6.8

Resolves a comma-separated list of keys or labels into ACF keys for a given post type.

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

Хуков нет.

Возвращает

array. List of ACF keys.

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

// private - только в коде основоного (родительского) класса
$result = $this->resolve_keys_for_type( $post_type, $arg );
$post_type(строка) (обязательный)
The item type (field group, post type, taxonomy, or options page).
$arg(строка|null) (обязательный)
Comma-separated keys/labels, or null for all.

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

С версии 6.8 Введена.

Код JsonCommand::resolve_keys_for_type() ACF 6.8.8

private function resolve_keys_for_type( $post_type, $arg ) {
	$posts = acf_get_internal_post_type_posts( $post_type );
	$posts = array_filter( $posts, 'acf_internal_post_object_contains_valid_key' );

	if ( ! $arg ) {
		return wp_list_pluck( $posts, 'key' );
	}

	$identifiers = array_filter( array_map( 'trim', explode( ',', $arg ) ) );
	$keys        = array();

	foreach ( $identifiers as $identifier ) {
		$found = false;

		foreach ( $posts as $post ) {
			if ( $post['key'] === $identifier || strcasecmp( $post['title'], $identifier ) === 0 ) {
				$keys[] = $post['key'];
				$found  = true;
				break;
			}
		}

		if ( ! $found ) {
			WP_CLI::warning( sprintf( 'No item found matching "%s". Skipping.', $identifier ) );
		}
	}

	return array_unique( $keys );
}