Hello @koreacito
Sorry for the delay!
I can see our team has responded to your query the next day. And sorry for the delay, it was mostly due to the timezone difference as were in GMT +0530.
Do let us know if you have any further queries.
Yes, I got an answer from the management.
By adding the below array, I was able to add the schema type without difficulty.
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_software_application', '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-software-application']['subkeys']['featureList'] = array( // bsf-aiosrs-book used for Book, bsf-aiosrs-event will for Event like that.
'label' => esc_html__( 'Feature List', 'wp-schema-pro' ), // Label to display in Mapping fields
'type' => 'text', // text/date/image
'default' => 'none',
'required' => true, // true/false.
);
$fields['bsf-aiosrs-software-application']['subkeys']['screenshot'] = array( // bsf-aiosrs-book used for Book, bsf-aiosrs-event will for Event like that.
'label' => esc_html__( 'Screenshot', 'wp-schema-pro' ), // Label to display in Mapping fields
'type' => 'text', // text/date/image
'default' => 'none',
'required' => true, // true/false.
);
$fields['bsf-aiosrs-software-application']['subkeys']['author'] = array( // bsf-aiosrs-book used for Book, bsf-aiosrs-event will for Event like that.
'label' => esc_html__( 'Author', '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['featureList'] ) && ! empty( $data['featureList'] ) ) {
$schema['featureList'] = esc_html( $data['featureList'] );
}
if ( isset( $data['screenshot'] ) && ! empty( $data['screenshot'] ) ) {
// For date/text type field
$schema['screenshot'] = esc_html( $data['screenshot'] );
}
if ( isset( $data['author'] ) && ! empty( $data['author'] ) ) {
// For date/text type field
$schema['author'] = esc_html( $data['author'] );
}
return $schema;
}
Perfect, @koreacito
Glad that the issue has been fixed. 🙂
Do let us know if there’s anything else we can help you with.