'customize-dropdown-categories' . $this->id, 'echo' => 0, 'show_option_none' => esc_html__( '— Select Category —', 'ample-magazine' ), 'option_none_value' => '0', 'selected' => $this->value(), ) ); // Hackily add in the data link parameter. $ample_magazine_dropdown = str_replace( 'get_link(), $ample_magazine_dropdown ); printf( '', $this->label, $this->description, $ample_magazine_dropdown ); } } /** * Customize Control for Taxonomy Select. * * @since 1.0.0 * * @see WP_Customize_Control */ class Ample_Magazine_Dropdown_Taxonomies_Control extends WP_Customize_Control { /** * Control type. * * @access public * @var string */ public $type = 'dropdown-taxonomies'; /** * Taxonomy. * * @access public * @var string */ public $taxonomy = ''; /** * Constructor. * * @since 1.0.0 * * @param WP_Customize_Manager $manager Customizer bootstrap instance. * @param string $id Control ID. * @param array $args Optional. Arguments to override class property defaults. */ public function __construct( $manager, $id, $args = array() ) { $our_taxonomy = 'category'; if ( isset( $args['taxonomy'] ) ) { $taxonomy_exist = taxonomy_exists( esc_attr( $args['taxonomy'] ) ); if ( true === $taxonomy_exist ) { $our_taxonomy = esc_attr( $args['taxonomy'] ); } } $args['taxonomy'] = $our_taxonomy; $this->taxonomy = esc_attr( $our_taxonomy ); parent::__construct( $manager, $id, $args ); } /** * Render content. * * @since 1.0.0 */ public function render_content() { $tax_args = array( 'hierarchical' => 0, 'taxonomy' => $this->taxonomy, ); $all_taxonomies = get_categories( $tax_args ); ?>