web-dev-qa-db-fra.com

Utilisation de nonce dans l'élément de menu

J'ai un lien de déconnexion dans le menu principal, lorsque vous cliquez sur le lien pour vous déconnecter, vous êtes redirigé vers la page vous demandant si vous voulez vraiment vous déconnecter. Je sais que c'est ce qui se passe car il n'y a pas de nonce dans l'URL du menu.

Ma question est la suivante: est-il même possible d’ajouter un nonce dans l’apparence du CMS> les menus dans l’écran des menus d’édition? L'URL est quelque chose comme: example.com/wp-login.php?action=logout&redirect_to=http://example.com/myaccount/&_wpnonce=

Juste pour rire, j'ai essayé d'ajouter wp_create_nonce('logout') à la fin, mais bien sûr, ça ne marche pas.

Si cela n’est pas possible, existe-t-il un autre moyen de contourner l’écran "Êtes-vous sûr de vouloir vous déconnecter?

2
Duck of Death

Ajoutez simplement un filtre:

function change_menu($items){
  foreach($items as $item){
    if( $item->title == "Log Out"){
         $item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
    }
  }
  return $items;

}
add_filter('wp_nav_menu_objects', 'change_menu');
1
Duck of Death