epl_listing_meta_boxes Filter
How to add custom meta fields to the edit listing pages using the epl_listing_meta_boxes filter
Easy Property Listings includes a filter which allows you to add your own custom fields to your listings.
function my_add_meta_box_epl_listings_callback($meta_fields) { $custom_field = array( 'id' => 'epl-property-listing-custom-data-id', 'label' => __('Custom Details', 'epl'), 'post_type' => array('property', 'rural', 'rental', 'land', 'commercial', 'commercial_land', 'business'), 'context' => 'normal', 'priority' => 'default', 'groups' => array( array( 'id' => 'property_custom_data_section', 'columns' => '1', 'label' => 'custom property data', 'fields' => array( array( 'name' => 'property_custom_data', 'label' => __('custom property data', 'epl'), 'type' => 'text', 'maxlength' => '150' ), // Repeat for more fields. ) ) ) ); $meta_fields[] = $custom_field; return $meta_fields; } add_filter( 'epl_listing_meta_boxes' , 'my_add_meta_box_epl_listings_callback' );
This code will output on your listings pages.
Then you can output the field onto your template using a custom function.
Any additional meta fields that you add are saved into the global $property; variable. So no need to use get_post_custom() which is slower as the values are already saved in the global $property variable.
function my_property_custom_data() { global $property; // Get the custom variable $custom_data = $property->get_property_meta( 'property_custom_data' ); if ( isset ($custom_data) ) { // Echo the custom variable if there is a value. You can wrap in a span tag. echo '<span class="custom-class">' . $custom_data . '</span>'; } } // This will echo the custom variable beside the price add_action( 'epl_property_price' , 'my_property_custom_data' , 9 );
You can place the data anywhere using the various hooks available in the template. Each template has several do_action sections. In the example above replace the epl_property_price with the do_action function which you can find from the links below.