¿Cómo usar get_current_user_id() en WordPress?

3 minutos de lectura

Avatar de usuario de Flemming Lemche
Flemming Lemché

Estoy tratando de averiguar cómo usar la función. get_current_user_id() adecuadamente.

Lo necesito para la separación de datos del usuario como lo usaría un código PHP normal $_SESSION.

Encontré el siguiente ejemplo de código que coloqué en Function.php y funciona bien, pero parece ejecutarse en cada página, lo cual no es la intención.

function hf_Function(){

    $user_ID = get_current_user_id(); 

    _SESSION["uid"] = user_ID;
}
add_action('init', 'hf_Function');

Solo necesito que se ejecute una vez y guarde la información en un $_SESSION variable o una variable global a la que puedo acceder desde mis propias páginas PHP.

Traté de poner las líneas de arriba en mi propio script PHP, pero parece que no funciona.

¿Es esta la forma correcta de hacerlo o estoy haciendo algo mal?

¿Cuál es la mejor práctica cuando se trata de usar get_current_user_id() y las otras funciones integradas?

  • Bien, gracias :o) 1) y 2) son errores tipográficos. 3) De hecho, traté de leer la descripción en add_action (init) pero aún no estaba seguro de cómo hacerlo de la manera correcta. Pero mi objetivo final es usar la ID de usuario para mi SQL al seleccionar datos para que los datos del usuario no se mezclen. En el PHP que he hecho hasta ahora (no WP) usé variables $_SESSION para la separación de usuarios.

    – Flemming Lemche

    01/03/2016 a las 21:55

Avatar de usuario de Kirk Beard
kirk barba

Según su código de ejemplo, no hay ningún beneficio para usted al almacenar el ID_usuario en el $_SESSION.

Puedes usar el get_current_user_id() método en todo el sitio. Devolverá la identificación de los usuarios actuales si están conectados, o devolverá 0 si el usuario actual no ha iniciado sesión.

Por ejemplo, podría hacer lo siguiente:

function hf_Function(){
    $user_ID = get_current_user_id(); 

    if ($user_ID == 0) {
        // The user ID is 0, therefore the current user is not logged in
        return; // escape this function, without making any changes
    }

    // Run your SQL queries here (using WordPress DB class)
    global $wpdb;
    // $wpdb->query($sql);
}
add_action('init', 'hf_Function');

Porque estás usando el init acción, esta función se ejecutará en cada carga de página. Es posible que deba cambiar el acción, dependiendo de lo que esté tratando de lograr. Este respuesta en WordPress SE podría ser útil para ayudarlo a comprender el ciclo de vida de WordPress.

  • Necesito leer algunos ganchos de aborto más en WP y cómo funcionan. Sin embargo, una pregunta adicional que me ha venido a la mente es la ubicación del código. Parece que cuando coloco el código en mi propio archivo PHP no funciona, pero cuando lo coloco en el archivo Functions.php funciona bien. ¿Me estoy perdiendo algo… Necesito registrar mi propio archivo PHP en alguna parte?

    – Flemming Lemche

    5 de marzo de 2016 a las 8:47

  • @FlemmingLemche WordPress incluirá automáticamente su functions.php archivo cuando se carga por primera vez. Si crea un archivo separado, es decir my-functions.php entonces WordPress no tiene conocimiento de ese archivo. Debería incluir ese archivo en su functions.php archivo: include('my-functions.php'); para que WordPress reconozca y procese cualquier código que contenga.

    – Kirk Barba

    5 de marzo de 2016 a las 9:34

  • Tu eres el hombre. Muchas gracias por ayudar. Una cosa es saber PHP y otra es aprender a operar en el framework WP. Como dije antes, acabo de abrir la caja de Pandora y estoy en el nivel de noop. 😎

    – Flemming Lemche

    06/03/2016 a las 21:51

¿Ha sido útil esta solución?