Viendo 8 respuestas - de la 1 a la 8 (de un total de 8)
  • Moderador LGrusin

    (@lgrusin)

    Iniciador del debate J.Parra

    (@jparra-1)

    Muchas gracias por responder tan rápido.

    Adaptando el ejemplo a mis necesidades he probado lo siguiente, pero sin éxito.

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item"><a href="'. wp_logout_url(get_permalink()) .'">Salir</a></li>';
    		$menu .= $loginout;
    		} 
    	else {
    		echo 'No registrado';
    	}
    	return $menu;
    }

    Cuando no estás registrado si te muestra el «No registrado» pero cuando detecta que si, no hace nada y en el html no se ve creado el <li>

    • Esta respuesta fue modificada hace 5 años, 3 meses por J.Parra.
    • Esta respuesta fue modificada hace 5 años, 3 meses por almendron.
    Iniciador del debate J.Parra

    (@jparra-1)

    Quiero aclarar que mi intención es tener el «if» para poder meter una u otra clase al texto «Entrar» y «Salir» porque así después les daré estilos diferentes con CSS.

    Moderador almendron

    (@almendron)

    Eso te funcionaría solo si tuvieras un menú.

    Prueba

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item"><a href="'. wp_logout_url(get_permalink()) .'">Salir</a></li>';
    		echo $loginout;
    		} 
    	else {
    		echo 'No registrado';
    	}
    }
    • Esta respuesta fue modificada hace 5 años, 3 meses por almendron.
    Moderador almendron

    (@almendron)

    Estoy viendo que wp_logout_url( get_permalink() ) es para cuando estás dentro del «loop» que no es el caso.

    Prueba a cambiarlo por wp_logout_url( home_url() ) o simplemente wp_logout_url() y no redireccionas.

    Y haz la prueba con el $menu .= $loginout; y con echo $loginout;

    • Esta respuesta fue modificada hace 5 años, 3 meses por almendron.
    • Esta respuesta fue modificada hace 5 años, 3 meses por almendron.
    Iniciador del debate J.Parra

    (@jparra-1)

    Perfecto almendrón, se ve que el problema lo tenia al querer redireccionar a la misma página que estaba, algo no funcionaba y al limpiar un poco me ha funcionado.

    Muchas gracias.

    Dejo el código aquí por si le interesa a alguien, aunque ahora voy a por la «Fase 2» que al lado del Salir aparezca el nombre del usuario conectado y un icono de color para que sea fácil identificar si estas «on o off».

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$loginout = '<li class="menu-item btn-menu btn-logout"><a href="'. wp_logout_url() .'">Salir</a></li>';
    		echo $loginout;
    		} 
    	else {
    		$loginout = '<li class="menu-item btn-menu btn-login"><a href="'. wp_login_url() .'">Entrar</a></li>';
    		echo $loginout;
    	}
    }
    • Esta respuesta fue modificada hace 5 años, 2 meses por J.Parra.
    Iniciador del debate J.Parra

    (@jparra-1)

    Bueno pues ya lo tengo como yo quería. Muchas gracias por vuestra ayuda.

    Os dejo esta imagen de como queda tanto logueado como no.

    Ejemplo del resultado

    Aquí podéis ver la web funcionando:

    Y aquí el código final:

    function jp_login_cabecera ($menu){
    	
    	if ( is_user_logged_in()){
    		$cu = wp_get_current_user();
    		$enlace_salir = '<li class="menu-item btn-menu btn-logout"><a href="'. wp_logout_url() .'">Salir - '. $cu->user_login .'<i class="fa fa-power-off fa-jp-ver"></i></a></li>';
    		echo $enlace_salir;
    		} 
    	else {
    		$loginout = '<li class="menu-item btn-menu btn-login"><a href="'. wp_login_url() .'">Entrar<i class="fa fa-power-off fa-jp-roj"></i></a></li>';
    		echo $loginout;
    	}
    }

    Gracias de nuevo. Saludos.

    Moderador almendron

    (@almendron)

    De nada. Un saludo.

Viendo 8 respuestas - de la 1 a la 8 (de un total de 8)
  • El debate ‘Añadir enlace login logout en cabecera’ está cerrado a nuevas respuestas.