ACF\AI\GEO

GEO::get_schema_typespublicACF 6.8.0

Get available Schema.org types for selection

Method of the class: GEO{}

Hooks from the method

Returns

Array. A hierarchical array of Schema.org types grouped by category.

Usage

$GEO = new GEO();
$GEO->get_schema_types();

Changelog

Since 6.8.0 Introduced.

GEO::get_schema_types() code ACF 6.8.8

public function get_schema_types() {
	$types = array();

	// Get all types from schema hierarchy.
	$all_types = array_keys( SchemaData::get_type_hierarchy() );
	// Add 'Thing' which is the root and doesn't have a parent.
	$all_types[] = 'Thing';
	sort( $all_types );

	// Get priority types from Schema class.
	$priority_types_list = Schema::get_priority_types();
	$common_types_cat    = __( 'Common Types', 'acf' );
	$all_types_cat       = __( 'All Types', 'acf' );

	// Add priority types under "Common Types" group.
	$types[ $common_types_cat ] = array();
	foreach ( $priority_types_list as $type ) {
		if ( in_array( $type, $all_types, true ) ) {
			$types[ $common_types_cat ][ $type ] = $type;
		}
	}

	// Add remaining types under "All Types".
	$remaining_types = array_diff( $all_types, $priority_types_list );
	if ( ! empty( $remaining_types ) ) {
		$types[ $all_types_cat ] = array();
		foreach ( $remaining_types as $type ) {
			$types[ $all_types_cat ][ $type ] = $type;
		}
	}

	/**
	 * Filter the available Schema.org types
	 *
	 * Allows developers to add custom Schema.org types or modify existing ones.
	 *
	 * @param array $types The Schema.org type mappings grouped by category.
	 */
	return apply_filters( 'acf/schema/schema_types', $types );
}