The simplest way to handle this is to create a page with slug property
which will be used to display all properties, and add a rewrite rule to handle requests for property IDs.
// add property_id query var to hold ID of requested property
function wpd_query_var( $query_vars ){
$query_vars[] = 'property_id';
return $query_vars;
}
add_filter( 'query_vars', 'wpd_query_var' );
// add rewrite rule to handle requests for specific properties
function wpd_rewrite_rule(){
add_rewrite_rule(
'property/([0-9]+)/?$',
'index.php?pagename=property&property_id=$matches[1]',
'top'
);
}
add_action( 'init', 'wpd_rewrite_rule' );
Visit your permalinks settings page to flush rewrite rules after adding this code to your theme’s functions.php
, or in a plugin.
Then in your page-property.php
template, use get_query_var( 'property_id' );
to get the ID of the requested property.