Set a menu item to display during certain times

Since you need to edit theme files, you’ll first want to determine whether you’re using a custom-built theme or something that was downloaded from somewhere. If it was downloaded from somewhere, you’ll need to create a child theme (basically, you just create a new style.css file which only needs to contain comments at the top, which let WordPress recognize it as a theme you can activate – and then you copy whichever file you’re editing, probably header.php, into your theme and make edits there). This way whenever your main theme is updated your child theme will still apply your changes.

Then, in header.php, you’ll change code that should look something like this (it may be longer but will contain wp_nav_menu):

wp_nav_menu(array('theme_location' => 'header'));

to a conditional:

$weekdayShowStart="17";
$weekdayShowEnd = '18';
$satFirstShowStart="07";
$satFirstShowEnd = '08';
$satSecondShowStart="19";
$satSecondShowEnd = '20';
$dayAndTime = current_time("N G");
$timestamp = explode(' ', $dayAndTime);
$day = $timestamp[0];
$hour = $timestamp[1];
if(
    ($day < 6 && $hour >= $weekdayShowStart && $hour < $weekdayShowEnd) ||
    ($day == 6 && $hour >= $satFirstShowStart && $hour < $satFirstShowEnd) ||
    ($day == 7 && $hour >= $satSecondShowStart && $hour < $satSecondShowEnd)
) {
    // paste your old code here, but change 'menu' value to 'radio_show_live_menu'
    wp_nav_menu(array('menu' => 'radio_show_live_menu'));
} else {
    // paste your old code here, with no changes
    wp_nav_menu(array('menu' => 'header'));
}

Explanation:

Using WordPress’s current_time("N G") gives you N, which is a day of the week, with Monday=1 through Sunday=7, as well as G, which is the hour of the day, with midnight=00 through 11 PM=23.

If your show is more than one hour you’ll want to edit the show start and end values above.

You’ll need to make sure WordPress is set to use your local time zone to ensure that things happen at the time you expect. You can do that in Settings > General.

Finally, this new code looks for 2 separate menus. If your show is on, it will pull from a new menu which you need to create. If your show isn’t on, it will pull from the old/existing menu.

To create the new menu: in your (child) theme’s functions.php file, add

function radio_show_live_menu() {
register_nav_menu(‘radio_show_live_menu’, __(‘Radio Live Menu’));
}
add_action(‘init’, ‘radio_show_live_menu’);

You can then copy the existing menu into the new one and add the extra link.