Implementing “Random” to custom-background

I have a client site that requires a random background image. I figured that custom-background would have something similar to custom-header for randomizing which image is selected, but alas it does not seem to be the case.

Does anyone have experience doing this, or know what direction would be best to extend custom-background? Or would the better approach be to ignore custom-background and create my own background theme support (I severely frown upon this method, but ‘the easy route’ is always there).

Related posts

Leave a Reply

2 comments

  1. I’m using child theme with twentythirteen parent. Made a directory with images in my child theme. But first removing default 2013 theme headers.

    /* Add custom headers from my child theme */
    
    add_action( 'after_setup_theme', 'childtheme_setup' );
    
    if ( ! function_exists( 'childtheme_setup' ) ):
    function childtheme_setup() {   
    
        /* Remove Default Headers */
        function dr_remove_twenty_thirteen_headers(){
            unregister_default_headers( array(
                'star',
                'diamond',
                'circle'
                )
                );
        }
        add_action( 'after_setup_theme', 'dr_remove_twenty_thirteen_headers', 11 );
    
        // Add our headers 
        register_default_headers( array(
            'header1' => array(
                'url'           => get_stylesheet_directory_uri() . '/images/headers/target_head2.jpg',
                //'thumbnail_url' => '%s/images/headers/circle-thumbnail.png',
                'description'   => _x( 'header1', 'header image description', 'twentythirteen' )
            ),
            'header2' => array(
                'url'           => get_stylesheet_directory_uri() . '/images/headers/target_head1.jpg',
                //'thumbnail_url' => '%s/images/headers/diamond-thumbnail.png',
                'description'   => _x( 'header2', 'header image description', 'twentythirteen' )
            ),
            'header3' => array(
                'url'           => get_stylesheet_directory_uri() . '/images/headers/target_head0.jpg',
                //'thumbnail_url' => '%s/images/headers/star-thumbnail.png',
                'description'   => _x( 'header3', 'header image description', 'twentythirteen' )
            )
    
        ) );
    }
    endif;
    

    This works on my wp 3.6. You may add more images. I have 9 🙂