add_action( 'after_setup_theme', 'add_my_custom_meta_field' ); function add_my_custom_meta_field() { add_filter( 'wp_schema_pro_schema_meta_fields', 'my_extra_schema_field' ); add_filter( 'wp_schema_pro_schema_local_business', 'my_extra_schema_field_mapping', 10, 3 ); } /** * Add fields for mapping. * * @param array $fields Mapping fields array. * @return array */ function my_extra_schema_field( $fields ) { $fields['bsf-aiosrs-local-business']['subkeys']['work-example'] = array( // `bsf-aiosrs-book` used for Book, `bsf-aiosrs-event` will for Event like that. 'label' => esc_html__( 'workExample', 'wp-schema-pro' ), // Label to display in Mapping fields 'type' => 'text', // text/date/image 'default' => 'none', 'required' => true, // true/false. ); return $fields; } /** * Mapping extra field for schema markup. * * @param array $schema Schema array. * @param array $data Mapping fields array. * @return array */ function my_extra_schema_field_mapping( $schema, $data, $post ) { if ( isset( $data['work-example'] ) && ! empty( $data['work-example'] ) ) { // For date/text type field $schema['workExample'] = esc_html( $data['work-example'] ); // For image type field // $schema['workExample'] = BSF_AIOSRS_Pro_Schema_Template::get_image_schema( $data['work-example'] ); } return $schema; }