Easily add a dynamic menu item anywhere in any WordPress Menu using the code below.
/**
* Inject Menu item anywhere
*/
add_filter('wp_nav_menu_items', 'myf_menu_items', 10, 2);
function myf_menu_items($items, $args) {
//var_dump($args);
if ($args->menu->name == 'Footer Menu') {
$array = explode("<li ", $items);
unset($array[0]);
// echo "<pre>";
// print_r($array);
// echo "</pre>";
$items = "";
$insert_x = 1; // Enter insertion point here
for ($i = 0; $i < (count($array) + 1); $i++) {
//print_r($items[i]);
if ($i == ($insert_x + 1)) {
if (is_user_logged_in()) {
$items .= '<li id="menu-item-logout" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-logout"><a class="menu-link" href="' . wp_logout_url() . '">Logout</a></li>';
} else {
$items .= '<li id="menu-item-login" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-login"><a class="menu-link" href="' . wp_login_url() . '">Login</a></li>';
}
}
$items .= '<li ' . $array[$i] . '</li>';
}
}
return $items;
}