Last active
September 17, 2016 14:18
-
-
Save Netzberufler/3c3a071e6235c4ed6965a5afa17138a5 to your computer and use it in GitHub Desktop.
Category Dropdown Control
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Make sure that custom controls are only defined in the Customizer | |
*/ | |
if ( class_exists( 'WP_Customize_Control' ) ) : | |
/** | |
* A custom category dropdown control for the Customizer | |
*/ | |
class Theme_Slug_Category_Dropdown_Control extends WP_Customize_Control { | |
/** | |
* Render Control | |
*/ | |
public function render_content() { | |
$categories = get_categories( array( 'hide_empty' => false ) ); | |
if ( ! empty( $categories ) ) : ?> | |
<label> | |
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span> | |
<select <?php $this->link(); ?>> | |
<option value="0"><?php esc_html_e( 'All Categories', 'theme-slug' ); ?></option> | |
<?php | |
foreach ( $categories as $category ) : | |
printf( '<option value="%s" %s>%s</option>', | |
absint( $category->term_id ), | |
selected( $this->value(), $category->term_id, false ), | |
esc_html( $category->name . ' (' . $category->count . ')' ) | |
); | |
endforeach; | |
?> | |
</select> | |
</label> | |
<?php | |
endif; | |
} | |
} | |
endif; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Adds Featured Content section and category select setting. | |
* | |
* @param WP_Customize_Manager $wp_customize The Customizer object. | |
*/ | |
function theme_slug_customize_register( $wp_customize ) { | |
// Add featured content section. | |
$wp_customize->add_section( 'theme_slug_featured_category', array( | |
'title' => esc_html__( 'Featured Content', 'theme-slug' ), | |
'priority' => 120, | |
) ); | |
// Add featured category setting and control. | |
$wp_customize->add_setting( 'featured_category', array( | |
'default' => 0, | |
'sanitize_callback' => 'absint', | |
'transport' => 'refresh', | |
) ); | |
$wp_customize->add_control( new Theme_Slug_Category_Dropdown_Control( $wp_customize, 'featured_category', array( | |
'label' => esc_html__( 'Featured Category', 'theme-slug' ), | |
'section' => 'theme_slug_featured_category', | |
) ) ); | |
} | |
add_action( 'customize_register', 'theme_slug_customize_register' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment