-
-
Save eduardozulian/4739075 to your computer and use it in GitHub Desktop.
| <?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' | |
| ) ) ); | |
| ?> |
hello,
i trying out your class and it act strange.
Right after i
require 'My_Customize_Image_Control.php';
and i save the new image options i get an error
Fatal error: Class 'WP_Customize_Image_Control' not found
And the Website is not loaded.
So after outcommenting
//require 'My_Customize_Image_Control.php';
the website loads correctly again.
What do i need to do to fix this?
Regards
AHHHH!!! THIS IS AMAZING!
@wesweat You need to go into your functions.php and add it from there. Look at https://gist.github.com/eduardozulian/4739075/#comment-823136
Anyway, I'm writing to ask how to actually use this? I'm not sure what to put inside the context. Anything I put in doesn't seem to work. The Uploaded tab is still hidden.
cool and time saved
@eduardozulian thanks for this! Wicked to extend this capability. Any resources that might point out how to implement or grab the new CustomLogo in the header.php?
@nativeimaging @eduardozulian seems since 3.9 was released a few things changed, mainly a bug arose, the "remove" option is now gone. Looking into a fix.