Ejemplos útiles para la aplicación de los hooks de filtro
WP-ImmoMakler® dispone de muchos hooks de filtro y de acción de WordPress (lista completa más abajo) que le permiten intervenir desde fuera del código del plugin en el comportamiento de la presentación, pero también en el comportamiento del importador.
A continuación, se muestran algunos filtros útiles. Copie los ejemplos de código que sean relevantes para usted en functions.php
de su plugin “child skin” bajo /wp-content/plugins/immomakler-child/functions.php
, y adáptelos a sus necesidades. Estaremos encantados de indicarle los filtros exactos para sus requisitos específicos si así nos lo solicita.
Hacer que los campos personalizados (post meta) estén disponibles para las consultas (queries)
No todos los valores de los inmuebles estarán disponibles como key post meta independientes a partir de la versión 5.8 de WP-ImmoMakler®. El objetivo es aumentar significativamente el rendimiento de la búsqueda.
Pueden crearse campos individuales como campo post meta independiente con el siguiente filtro para hacerlos disponibles para las meta queries (meta consultas):
add_filter( 'immomakler_searchable_postmeta_keys', 'custom_immomakler_searchable_postmeta_keys' );
function custom_immomakler_searchable_postmeta_keys( $immomakler_metakeys ) {
$immomakler_metakeys[] ='verwaltung_objekt-user_defined_simplefield-objekt_des_tages';
return$immomakler_metakeys;
}
Definir campos de selección en la máscara de búsqueda (taxonomías)
Consulte más abajo las taxonomías disponibles.
add_filter('immomakler_search_enabled_taxonomies', 'my_immomakler_search_taxonomies');
function my_immomakler_search_taxonomies( $taxomonies ) {
return array(
'immomakler_object_vermarktung',
'immomakler_object_nutzungsart',
'immomakler_object_type',
'immomakler_object_location',
);
}
Definir campos en la búsqueda avanzada (campos post meta)
add_filter('immomakler_search_enabled_ranges', 'my_immomakler_search_ranges');
function my_immomakler_search_ranges( $ranges ) {
return array(
'immomakler_search_size' => array(
'label' => 'Wohnfläche',
'slug' => 'qm',
'unit' => 'm²',
'decimals' => 0,
'meta_key' => 'wohnflaeche',
'slider_step' => 5
),
'immomakler_search_rooms' => array(
'label' => 'Anzahl Zimmer',
'slug' => 'zimmer',
'unit' => '',
'decimals' => 1,
'meta_key' => 'anzahl_zimmer',
'slider_step' => 0.5
),
'immomakler_search_price_rent' => array(
'label' => 'Kaltmiete',
'slug' => 'kaltmiete',
'unit' => '€',
'decimals' => 0,
'meta_key' => 'kaltmiete',
'slider_step' => 100
),
'immomakler_search_price_buy' => array(
'label' => 'Kaufpreis',
'slug' => 'kaufpreis',
'unit' => '€',
'decimals' => 0,
'meta_key' => 'kaufpreis',
'slider_step' => 25000
),
);
}
Definir la organización por defecto en la vista de lista
add_filter('immomakler_default_order', 'custom_immomakler_default_order');
function custom_immomakler_default_order( $im_order ) {
return 'priceasc'; // möglich sind: 'priceasc', 'pricedesc', 'dateasc', 'datedesc'
}
Determinar el tamaño de las imágenes de los inmuebles
Con 'crop' => true
las imágenes se recortan al tamaño especificado. Con 'crop' => false
las imágenes se escalan a los límites especificados.
add_filter('immomakler_image_sizes', 'custom_immomakler_image_sizes');
function custom_immomakler_image_sizes( $images_sizes ) {
$images_sizes['immomakler-archive-thumb'] = array( 'width' => 350, 'height' => 250, 'crop' => false );
return $images_sizes;
}
Los tamaños estándar son:
array(
'immomakler-gallery-big' => array( 'width' => 900, 'height' => 900, 'crop' => false ),
'immomakler-gallery-thumb' => array( 'width' => 100, 'height' => 60, 'crop' => false ),
'immomakler-archive-thumb' => array( 'width' => 360, 'height' => 390, 'crop' => false ),
'immomakler-archive-thumb-big' => array( 'width' => 475, 'height' => 475, 'crop' => false ),
'immomakler-person-thumb' => array( 'width' => 190, 'height' => 190, 'crop' => false )
)
Fechar de modificación del día en curso para la actualización de los datos inmobiliarios
Por defecto, una propiedad permanecerá en la parte inferior de la lista (también después de una actualización) de acuerdo con la fecha en que se publicó por primera vez en el sitio web. Use este filtro si desea que vuelva a aparecer en la parte superior de la lista después de una actualización.
add_filter ('immomakler_preserve_post_date_on_update', '__return_false');
Generar entrada de país “Extranjero”
Por defecto, los países se generan como una taxonomía, que puede ser listada bajo la URL /inmuebles-en/españa/. Utilice el siguiente filtro para una categoría /inmobiliaria/extranjero/. Puede establecer el país principal (no extranjero) en el motor administrativo de WP en WP-ImmoMakler® > Ajustes > Importación.
add_filter ('immomakler_mark_foreign_countries', '__return_true');
Personalización de las opciones de galleria.io para la visualización en forma de slideshow en la vista de presentación
add_filter('immomakler_galleria_options', 'immomakler_custom_galleria_options');
function immomakler_custom_galleria_options( $options ) {
$options['transition'] = 'fade';
$options['autoplay'] = '3000';
return $options;
}
Generación de propios tipos de inmuebles
add_filter('immomakler_object_terms_types', 'custom_immomakler_object_terms_types', 10, 2);
function custom_immomakler_object_terms_types( $object_types, $openimmo_data ) {
if ( $openimmo_data['gewerbe'] ) {
$object_types[] = 'Gewerbe';
}
if ( $openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'PREMIUM' ) {
$object_types[] = 'Premiumimmobilie';
}
return $object_types;
}
Generación de tipos de uso propios a partir de los campos definidos por el usuario desde el software inmobiliario
add_filter('immomakler_object_terms_nutzungsart', 'custom_immomakler_object_terms_nutzungsart', 10, 2);
function custom_immomakler_object_terms_nutzungsart( $object_nutzungsart, $openimmo_data ) {
if ( $openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'PRIVAT' ) {
$object_nutzungsart[] = 'Privat';
}
if ( $openimmo_data['verwaltung_objekt-user_defined_simplefield-xyz'] == 'INSTITUTIONELL' ) {
$object_nutzungsart[] = 'Institutionell';
}
return $object_nutzungsart;
}
Generación de una taxonomía propia
Esta taxonomía de WordPress “immomakler_search_plz” (búsqueda por código postal) creada en el siguiente modelo puede incluirse, igual que en el ejemplo anteriormente mencionado, en “campos de selección en la máscara de búsqueda” o utilizarse en un shortcode:
add_action( "init", "custom_immomakler_register_taxonomies" );
function custom_immomakler_register_taxonomies() {
register_taxonomy(
'immomakler_search_plz',
'immomakler_object',
array(
'labels' => array(
'name' => _x('Postleitzahlen', 'taxonomy general name'),
'singular_name' => _x('Postleitzahl', 'taxonomy singular name'),
'all_items' => _x('Alle Postleitzahlen', 'taxonomy choose all'),
),
'rewrite' => array( 'slug' => 'immobilien-plz', 'hierarchical' => false, 'with_front' => false ),
'hierarchical' => false,
'query_var' => 'plz',
'public' => true,
'show_ui' => true
)
);
}
add_action( "immomakler_after_post_create", "custom_immomakler_index", 10, 2 );
function custom_immomakler_index( $post_id, $openimmo_data ) {
if ( ! empty ( $openimmo_data['plz'] ) ) {
wp_set_object_terms( $post_id, $openimmo_data['plz'], 'immomakler_search_plz' );
}
}