Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save manidip/e44d0260a7120f4b51c6 to your computer and use it in GitHub Desktop.
Save manidip/e44d0260a7120f4b51c6 to your computer and use it in GitHub Desktop.
Extend WP_Customize_Image_Control class allowing access to files uploaded within the same context.
<?php
/**
* Customize Image Reloaded Class
*
* Extend WP_Customize_Image_Control allowing access to uploads made within
* the same context
*/
class My_Customize_Image_Reloaded_Control extends WP_Customize_Image_Control {
/**
* Constructor.
*
* @since 3.4.0
* @uses WP_Customize_Image_Control::__construct()
*
* @param WP_Customize_Manager $manager
*/
public function __construct( $manager, $id, $args = array() ) {
parent::__construct( $manager, $id, $args );
}
/**
* Search for images within the defined context
*/
public function tab_uploaded() {
$my_context_uploads = get_posts( array(
'post_type' => 'attachment',
'meta_key' => '_wp_attachment_context',
'meta_value' => $this->context,
'orderby' => 'post_date',
'nopaging' => true,
) );
?>
<div class="uploaded-target"></div>
<?php
if ( empty( $my_context_uploads ) )
return;
foreach ( (array) $my_context_uploads as $my_context_upload ) {
$this->print_tab_image( esc_url_raw( $my_context_upload->guid ) );
}
}
}
/**
* Example of inserting a section called "Branding" with a
* context-based image uploader
*/
$wp_customize->add_section( 'my_branding', array(
'title' => __( 'Branding', '' ),
'priority' => 30,
) );
$wp_customize->add_setting( 'my_logo', array(
'capability' => 'edit_theme_options'
) );
$wp_customize->add_control( new My_Customize_Image_Reloaded_Control( $wp_customize, 'my_logo', array(
'label' => __( 'Logo', '' ),
'section' => 'my_branding',
'settings' => 'my_logo',
'context' => 'my-custom-logo'
) ) );
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment