Creating SEO friendly property details URLs
By default a property created in Property Hive, either manually or imported, will have a permalink matching that of the display address:
https://yoursite.com/property/high-street-birmingham
This could be changed however to be more SEO friendly like so it looks like so:
https://yoursite.com/property-for-sale/birmingham/high-street-birmingham
This can be achieved using a snippet like so:
add_filter( 'post_type_link', 'customise_property_post_type_link', 10, 4 ); function customise_property_post_type_link( $post_link, $post, $leavename, $sample ) { if ( get_post_type($post->ID) == 'property' ) { $property = new PH_Property($post->ID); $suffix = 'for-sale'; if ( $property->department == 'residential-lettings' ) { $suffix = 'to-rent'; } $area = $property->address_three; if ( $area == '' ) { $area = $property->address_four; } if ( $area == '' ) { $area = $property->address_two; } if ( $area == '' ) { $area = 'property'; } $post_link = str_replace("/property/", "/property-" . $suffix . "/" . sanitize_title($area) . "/", $post_link); } return $post_link; } add_action( 'init', 'rewrites_init' ); function rewrites_init() { add_rewrite_rule( 'property-for-sale/([^/]+)/([^/]+)/?$', 'index.php?post_type=property&name=$matches[2]', 'top' ); add_rewrite_rule( 'property-to-rent/([^/]+)/([^/]+)/?$', 'index.php?post_type=property&name=$matches[2]', 'top' ); }
Once the below code is added to your functions.php file you'll need to visit 'Settings > Permalinks' and just click 'Save changes' to force the rewrite rules to take effect.