The issue was resolved. I had to hook the custom classes to the customize_register
action hook. Something like this –
function itlst_extend_customize_control() {
if ( class_exists('WP_Customize_Control') ) {
class itlst_WP_Customize_Property_Control extends WP_Customize_Control {
/**
* Render the control's content.
*/
public function render_content() {
$dropdown = wp_dropdown_categories(
array(
'name' => '_customize-dropdown-categories-' . $this->id,
'echo' => 0,
'show_option_none' => __( '— Select —', 'it-listings' ),
'taxonomy' => 'property-type',
'option_none_value' => '0',
'selected' => $this->value(),
)
);
$dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );
printf(
'<label class="customize-control-select"><span class="customize-control-title">%s</span> %s</label>',
esc_html($this->label),
$dropdown
);
}
}
}
add_action('customize_register', 'itlst_extend_customize_control');
This is peculiar as in themes, nothing of this sort has to be done. Seems like classes are included after the customize_register
hook in plugins.