• Resolved Swinkid

    (@swinkid)


    Under theme customisation, I’m unable to set a video as the Header Media. This theme is being created from scratch so I’ve currently only got the following files: header.php, footer.php, functions.php, sidebar.php, index.php

    I’ve tried setting video to true in the theme support section for wordpress. I’ve tried copying the implementation in the twentyseventeen theme. I’ve tried different combination of parameters in the custom-header theme support function.

    functions.php:

    add_theme_support( 'custom-header', array(
        'video' => true,
    ) );

    header.php:

    <?php the_custom_header_markup(); ?>
    Wordpress is currently giving me the following error:

    This theme doesn’t support video headers on this page. Navigate to the front page or another page that supports video headers.

    • This topic was modified 5 years, 5 months ago by Swinkid.
Viewing 5 replies - 1 through 5 (of 5 total)
  • Hello Swinkid

    Sorry you are having issues. Sounds like you are developing a custom theme from scratch, which is great. Is your custom theme a child theme of twentyseventeen?

    The WP theme developer handbook is a great resource. Please have a look via the link below.

    https://developer.www.ads-software.com/themes/

    Also, I drilled down to find info about your specific issue. The article below demonstrates how to use ‘add_theme_support()’ to set up custom headers:

    https://developer.www.ads-software.com/themes/functionality/custom-headers/

    Jonas

    Thread Starter Swinkid

    (@swinkid)

    Hey Jonas,

    My theme is not a child theme of twentyseventeen, is this required? I literally just created a new folder under themes with index, header, footer, sidebar and functions files.

    I’ve been following:

    Video Headers in 4.7

    I’ve also followed the codex documentation as well as pretty much every resource relating to video headers through google.

    I’m not sure what I’m missing, and it’s driving me mad! I appreciate your help.

    Alex

    Moderator bcworkz

    (@bcworkz)

    By default only the front page supports video headers. Are your issues with the front page or other pages? To get video header on other pages, define a new callback that returns true for the appropriate pages and specify it as the ‘video-active-callback’ argument for add_theme_support().

    Not sure if it’ll help or not, but can you provide a link to a live page demonstrating the problem?

    Hi Alex

    It is not required that you create a child theme. I asked because you mentioned copying the implementation in the twentyseventeen theme. I’ve been down that path too. What I have found is grabbing php functions from a different theme might not be a reliable method for theme development. Other themes, such as twentyseventeen, have their own specific dependencies.

    I recommend taking a little bit of time to read through the developers handbook:

    https://developer.www.ads-software.com/themes/

    It documents the best practices for theme development. Understanding the template hierarchy is super important. Especially for static front page vs blog.

    In header.php you mentioned calling the function ‘the_custom_header_markup()’. Can you double check to make sure you are passing all the arguments properly? See below.

    https://developer.www.ads-software.com/reference/functions/the_custom_header_markup/

    Jonas

    Thread Starter Swinkid

    (@swinkid)

    Solved.

    In my functions.php I was loading jQuery like the following:

    
        wp_enqueue_script('wptheme-jquery-js-cdn', 'https://code.jquery.com/jquery-3.3.1.slim.min.js');

    This caused jQuery to load first. To solve this, I forced it to be loaded in the footer.

    
        wp_enqueue_script('wptheme-jquery-js-cdn', 'https://code.jquery.com/jquery-3.3.1.slim.min.js', array(), '', true);

    This is also better practice to stop it blocking rendering.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Unable to use custom header video’ is closed to new replies.