Luego de indagar en diversos repositorios y sitios de internet al concluir descubrimos la resolución que te enseñamos a continuación.
Solución:
Esto sucede porque falta el nonce necesario en la URL, que se está registrando wp-login.php
case 'logout' :
check_admin_referer('log-out');
...
Usar wp_logout_url
para recuperar la URL incluyendo el nonce. Si desea redirigir a una URL personalizada, simplemente pásela como argumento.
">Log out
También podrías usar wp_loginout
que genera el enlace para usted, incluida la traducción:
echo wp_loginout('/redirect/url/goes/here')
Si no puedes usar wp_logout_url()
función, puede desactivar esta validación usando este código:
add_action('check_admin_referer', 'logout_without_confirm', 10, 2);
function logout_without_confirm($action, $result)
/**
* Allow logout without confirmation
*/
if ($action == "log-out" && !isset($_GET['_wpnonce']))
$redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : 'url-you-want-to-redirect';
$location = str_replace('&', '&', wp_logout_url($redirect_to));
header("Location: $location");
die;
Reemplazar 'url-you-want-to-redirect'
con la URL que desea redirigir después de cerrar sesión.
Agrégalo en tu functions.php
Si crea un enlace personalizado en su menú, establezca la etiqueta en “Logout”
y establezca la URL en http://yourdomain.com/wp-login.php?action=logout
. Luego agregue esta función a su functions.php
expediente:
function change_menu($items)
foreach($items as $item)
if( $item->title == "Logout")
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
return $items;
add_filter('wp_nav_menu_objects', 'change_menu');
Si desea redirigir a la página de inicio de sesión después de cerrar sesión, debe agregar la URL de inicio de sesión como:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
Link de referencia
** intenté que no funcionó. Realmente quiero cerrar sesión en la página y luego 4 algo salió mal al hacer clic en el botón.