WP-ImmoMakler® ist mit vielen WordPress Filter-Hooks und Action-Hooks versehen (vollständige Liste siehe unten), durch die sich von außerhalb des Plugin-Codes in das Verhalten der Ausgabe, aber auch vor allem das Verhalten des Importers eingreifen lässt.
Folgend sind ein paar nützliche Filter aufgeführt. Kopieren Sie die für Sie relevanten Code-Beispiele in die functions.php
Ihres Child-Skin-Plugins unter /wp-content/plugins/immomakler-child/functions.php
und passen Sie sie an Ihre Bedürfnisse an. Gerne nennen wir Ihnen auf Anfrage die genauen Filter für Ihre speziellen WünscheQ
Custom Fields (Post Meta) für Queries verfügbar machen
Um die Suchperformance deutlich zu steigern sind ab WP-ImmoMakler® Version 5.8 nicht mehr alle Immobilien-Werte als eigener Post Meta Key verfügbar.
Mit folgendem Filter können einzelne Felder als eigenes Post Meta Feld angelegt werden, um sie für Meta Queries verfügbar zu machen:
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; }
Felder in der erweiterten Suche (Post Meta Fields) definieren
add_filter('immomakler_search_enabled_ranges', 'my_immomakler_search_ranges'); function my_immomakler_search_ranges( $ranges ) { return array( 'immomakler_search_size' => array( 'label' => 'Fläche', 'slug' => 'qm', 'unit' => 'm²', 'decimals' => 0, 'meta_key' => 'flaeche', '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 ), ); }
Größe der Immobilienbilder festlegen
Mit 'crop' => true
werden die Bilder auf die angegebene Größe zugeschnitten. Mit 'crop' => false
wird in die angegebenen Grenzen skaliert.
add_filter('immomakler_image_sizes', 'custom_immomakler_image_sizes'); function custom_immomakler_image_sizes( $images_sizes ) { $images_sizes['immomakler-archive-thumb'] = [ 'width' => 350, 'height' => 250, 'crop' => false ]; // max. 350px breit, max. 250px hoch, aber nicht geschnitten $images_sizes['immomakler-archive-thumb-big'] = [ 'width' => 475, 'height' => 300, 'crop' => true ]; // max. 475px breit, max. 30px hoch, Überhänge abgeschnitten $images_sizes['immomakler-archive-big'] = [ 'width' => 900, 'height' => 600, 'crop' => ['center', 'top'] ]; // max. 900px breit, max. 600px hoch, Überhänge abgeschnitten (horizontal mittig geschnitten und nur unten abgeschnitten) return $images_sizes; }
Die Standardgrößen sind:
array( 'immomakler-gallery-big' => array( 'width' => 900, 'height' => 900, 'crop' => false ), 'immomakler-gallery-thumb' => array( 'width' => 195, 'height' => 110, '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' => 360, 'height' => 390, 'crop' => false ) )
Änderungsdatum bei Immobiliendaten-Updates auf den aktuellen Tag setzen
Standardmäßig bleibt eine Immobilie auch nach einem Update ganz hinten in der Liste, zum Datum der Erstveröffentlichung auf der Website. Wenn sie aber nach einem Update wieder vorn eingereiht werden soll, nutzen Sie diesen Filter.
add_filter ('immomakler_preserve_post_date_on_update', '__return_false');
Ländereintrag „Ausland“ generieren
Standardmäßig werden Länder als Taxonomy generiert, die dann unter der URL /immobilien-in/spanien/ gelistet werden können. Für eine Kategorie /immobilien-in/ausland/ nutzen Sie folgenden Filter. Das Hauptland (nicht-Ausland) können Sie im WP-Backend unter WP-ImmoMakler® > Einstellungen > Import einstellen.
add_filter ('immomakler_mark_foreign_countries', '__return_true');
Anpassen der galleria.io-Options für die Exposé-Slideshow
add_filter('immomakler_galleria_options', 'immomakler_custom_galleria_options'); function immomakler_custom_galleria_options( $options ) { $options['transition'] = 'fade'; $options['autoplay'] = '3000'; return $options; }
Eigene Objektarten generieren
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; }
Eigene Nutzungsarten anhand benutzerdefinierter Felder aus der Maklersoftware generieren
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; }
Eine eigene Taxonomy generieren
Diese in folgendem Beispiel erstellte WordPress Taxonomy “immomakler_search_plz” kann dann z.B. wie oben beschrieben unter “Auswahlfelder in der Suchmaske” eingebunden werden oder in einem Shortcode verwendet werden:
[immomakler-archive vermarktungsart=kauf plz="12345,12355,12347"]
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' ); } }
Liste der verfügbaren Filter-Hooks
Für die genaue Verwendung, Ausführungsstelle und die verfügbaren Parameter der einzelnen Filter suchen Sie bitte nach dem entsprechenden Filter-Namen im Plugin-Code.
Über die Anwendung von WordPress Filter-Hooks
immomakler_allow_delete_post immomakler_append_anbieternr_to_anid immomakler_append_anbieternr_to_obid immomakler_append_language_to_obid immomakler_archive_on_delete immomakler_archive_title immomakler_attachment_caption immomakler_attachment_data_path immomakler_attachment_description immomakler_attachment_icon_class immomakler_attachment_nodes_before_processing immomakler_attachment_title immomakler_auto_publish_post immomakler_available_taxonomies immomakler_available_themes immomakler_back_to_archive_link immomakler_bebaubar_nach_mapping immomakler_cart_add_to_cart immomakler_cart_archive_title immomakler_cart_archive_title_search immomakler_cart_cookie_lifetime immomakler_cart_searchable immomakler_cart_show_cart immomakler_cart_widget_item immomakler_contact_form_with_posts immomakler_contact_form_without_posts immomakler_contactform_agb immomakler_contactform_cc immomakler_contactform_customer_is_sender immomakler_contactform_enabled_fields immomakler_contactform_mail_no_posts_subject immomakler_contactform_mail_to_email immomakler_contactform_mail_to_name immomakler_contactform_mail_with_posts_subject immomakler_contactform_mailfailed immomakler_contactform_mailsent immomakler_contactform_mandatory_fields immomakler_contactform_message_text immomakler_contactform_submit_value immomakler_contactform_validationfailed immomakler_contactform_widerruf immomakler_contactform_widerruf_in_multiple_request immomakler_country_taxonomy immomakler_currency immomakler_custom_max_execution_time immomakler_default_currency immomakler_default_order immomakler_default_property_image_path_filename immomakler_delete_imported_files_after_days immomakler_disable_frontend immomakler_email_attachments immomakler_enqueue_bootstrap_js immomakler_epass_diagram_size immomakler_erschliessung_mapping immomakler_feature_list_args immomakler_feature_taxonomy immomakler_find_duplicate_by immomakler_galleria_options immomakler_galleria_theme_file immomakler_geocode_address immomakler_geocode_address_if_hidden immomakler_geocode_with_bundesland immomakler_googlemaps_api_key immomakler_hide_address immomakler_home_country_iso immomakler_image_sizes immomakler_immomakler_object_type_add_objektart immomakler_immomakler_object_type_add_objektart_detail immomakler_import_basedir_abspath immomakler_import_dir_abspath immomakler_import_dir_max_depth immomakler_import_notifications_recipient_email immomakler_import_notifications_recipient_name immomakler_import_post_type immomakler_importer_only immomakler_insert_attachment_args immomakler_is_immomakler_archive immomakler_is_immomakler_single immomakler_iso_land_mapping immomakler_language_code immomakler_language_code_default immomakler_link_icon_class immomakler_list_files_sorted_by_field immomakler_location_taxonomy immomakler_log_import_to_file immomakler_map_address_with_bundesland immomakler_map_address_with_sublocality immomakler_mark_as_reference_instead_of_delete immomakler_max_attachments immomakler_number_of_columns_archive immomakler_number_of_columns_single immomakler_nutzungsart_taxonomy immomakler_object_country_slug immomakler_object_feature_slug immomakler_object_location_slug immomakler_object_nutzungsart_slug immomakler_object_status_message immomakler_object_status_slug immomakler_object_terms_country immomakler_object_terms_feature immomakler_object_terms_location immomakler_object_terms_nutzungsart immomakler_object_terms_status immomakler_object_terms_types immomakler_object_terms_vermarktungsart immomakler_object_type_hierarchical immomakler_object_type_slug immomakler_object_vermarktung_slug immomakler_objektart_list_args immomakler_objektart_mapping immomakler_opengraph_facebook_admins immomakler_openimmo_data immomakler_openimmo_data_before_set_post_meta immomakler_openimmofeedback_key_for_oobj_id immomakler_options_defaults immomakler_options_sanitize immomakler_person_post_type immomakler_post_author immomakler_post_title immomakler_post_type_immomakler_object_args immomakler_post_type_immomakler_person_args immomakler_posts_per_page immomakler_preis_zeiteinheit immomakler_preserve_post_date_on_update immomakler_property_subtitle immomakler_property_type_taxonomy immomakler_protect_duplicate_property_posts immomakler_radiussearch_default_radius immomakler_radiussearch_radius_values immomakler_recaptcha_validationfailed immomakler_search_archive_title immomakler_search_button_text immomakler_search_dropdown_show_children immomakler_search_enabled_ranges immomakler_search_enabled_taxonomies immomakler_searchagents_confirmation_flash_message immomakler_searchagents_no_confirm_mail_sent_flash_message immomakler_searchagents_notification_email_body immomakler_searchagents_notification_email_subject immomakler_searchagents_please_confirm_email_subject immomakler_searchagents_please_confirm_flash_message immomakler_searchagents_unsubscribe_flash_message immomakler_seo_permalinks immomakler_settings_tabs immomakler_show_ui_country immomakler_show_ui_feature immomakler_show_ui_location immomakler_show_ui_nutzungsart immomakler_show_ui_status immomakler_show_ui_type immomakler_show_ui_vermarktung immomakler_single_title immomakler_skin_bootstrap3_vertical_archive_layout immomakler_status_taxonomy immomakler_taxomomy_immomakler_object_country_args immomakler_taxomomy_immomakler_object_feature_args immomakler_taxomomy_immomakler_object_location_args immomakler_taxomomy_immomakler_object_nutzungsart_args immomakler_taxomomy_immomakler_object_status_args immomakler_taxomomy_immomakler_object_type_args immomakler_taxomomy_immomakler_object_vermarktung_args immomakler_theme_bootstrap3_vertical_archive_layout immomakler_use_timestamp_for_file_id immomakler_user_defined_fields immomakler_vermarktung_taxonomy immomakler_video_links immomakler_zustand_mapping
Liste der verfügbaren Action-Hooks
Für die genaue Verwendung, Ausführungsstelle und die verfügbaren Parameter der einzelnen Actions suchen Sie bitte nach dem entsprechenden Action-Namen im Plugin-Code.
Über die Anwendung von WordPress Action-Hooks
immomakler_after_archive immomakler_after_archive_item immomakler_after_archive_items immomakler_after_archive_no_items immomakler_after_archiving_existing_post immomakler_after_import_filelist immomakler_after_import_zipfile immomakler_after_pagination immomakler_after_post_create immomakler_after_save_attachments immomakler_after_single immomakler_after_single_details immomakler_archive_property_actions immomakler_archive_property_details_bottom immomakler_archive_property_details_top immomakler_before_archive immomakler_before_archive_item immomakler_before_archive_items immomakler_before_archive_items_references immomakler_before_archive_no_items immomakler_before_contactform immomakler_before_delete_post immomakler_before_import_zipfile immomakler_before_publish_post immomakler_before_single immomakler_before_single_details immomakler_before_update_post immomakler_end_epass immomakler_search_form_after_ranges immomakler_search_form_after_taxonomies immomakler_search_form_begin immomakler_search_form_end immomakler_searchagents_after_form immomakler_searchagents_before_form immomakler_single_contact_begin immomakler_single_contact_bottom immomakler_single_description_end immomakler_single_details_before_price immomakler_single_details_begin immomakler_single_details_end immomakler_single_property_actions