Schema Pro – Añadir hasmap, Geo Coordenadas y redes sociales

Juan Antonio Munoz Castro - emoji con bus

¿Alguna vez has tenido la necesidad de añadir los atributos hasmap, coordenadas y redes sociales en tu marcado schema con el plugin schema pro? ¡te explico como hacerlo de forma fácil!

Te dejo el código para añadir estos campos a schema PRO

<?php

/**
 * SCHEMA PRO: Añadir hasmap, Coordenadas y redes sociales
 */
add_action( 'after_setup_theme', 'JM_add_my_custom_meta_field' );
function JM_add_my_custom_meta_field() {
	add_filter( 'wp_schema_pro_schema_meta_fields', 'JM_my_extra_schema_field' );
	add_filter( 'wp_schema_pro_schema_local_business', 'JM_my_extra_schema_field_mapping', 10, 3 );
}

/**
 * Añadir ficheros a la pagina de configuración
 */
function JM_my_extra_schema_field( $fields ) {
	$fields['bsf-aiosrs-local-business']['subkeys']['has-map'] = array( 
		'label'    => esc_html__( 'hasMap', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
    );
    $fields['bsf-aiosrs-local-business']['subkeys']['Facebook'] = array( 
		'label'    => esc_html__( 'Facebook', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
    );

    $fields['bsf-aiosrs-local-business']['subkeys']['Instagram'] = array( 
		'label'    => esc_html__( 'Instagram', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
    );

    $fields['bsf-aiosrs-local-business']['subkeys']['Twitter'] = array( 
		'label'    => esc_html__( 'Twitter', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
    );

    $fields['bsf-aiosrs-local-business']['subkeys']['Linkedin'] = array( 
		'label'    => esc_html__( 'Linkedin', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
    );
    
	$fields['bsf-aiosrs-local-business']['subkeys']['geo-latitude'] = array( 
		'label'    => esc_html__( 'latitude', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
	);
	$fields['bsf-aiosrs-local-business']['subkeys']['geo-longitude'] = array( 
		'label'    => esc_html__( 'longitude', 'wp-schema-pro' ),
		'type'     => 'text',
		'default'  => 'none',
		'required' => false,
	);
	return $fields;
}

/**
 * Añadimos los campos nuevos al marcado schema
 */
function JM_my_extra_schema_field_mapping( $schema, $data, $post ) {
	if ( isset( $data['has-map'] ) && ! empty( $data['has-map'] ) ) {
		$schema['hasMap'] = esc_html( $data['has-map'] );
    }
    
    if ( isset( $data['Facebook'] ) && ! empty( $data['Facebook'] ) ) {
		$schema['sameAs'] = esc_html( $data['Facebook'] );
    }

    if ( isset( $data['Instagram'] ) && ! empty( $data['Instagram'] ) ) {
		$schema['sameAs'] = esc_html( $data['Instagram'] );
    }

    if ( isset( $data['Twitter'] ) && ! empty( $data['Twitter'] ) ) {
		$schema['sameAs'] = esc_html( $data['Twitter'] );
    }

    if ( isset( $data['Linkedin'] ) && ! empty( $data['Linkedin'] ) ) {
		$schema['sameAs'] = esc_html( $data['Linkedin'] );
    }
    
	if ( isset( $data['geo-latitude'] ) && ! empty( $data['geo-latitude'] ) && isset( $data['geo-longitude'] ) && ! empty( $data['geo-longitude'] ) ) {
		$schema['geo']['@type'] = 'GeoCoordinates';
		$schema['geo'][latitude] = esc_html( $data['geo-latitude'] );
		$schema['geo'][longitude] = esc_html( $data['geo-longitude'] );
	}
	return $schema;
}

?>


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable Juan Antonio Muñoz Castro .
  • Finalidad Moderar los comentarios. Responder las consultas.
  • Legitimación Tu consentimiento.
  • Destinatarios SERED.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puedes consultar la información detallada en la Política de Privacidad.

Ir arriba
Esta web utiliza cookies, puedes ver aquí la Política de Cookies