hand Inicio

SERVICIOS

Salir

nochedía

DESARROLLO WEB con
GATSBY y WORDPRESS

emoji Cursos [24]
emoji Themes Gatsby [5]
emoji Themes WordPress [2]
emoji Blog [83]
emoji Herramientas [11]

Cómo evitar que un usuario no sea capaz de visitar tu instalación WordPress?

100 palabras
1 minutos
March 15, 2020
blogwordpress

Necesitas ejecutar un código que compruebe si el usuario logeado tiene rol de administrador, y si no lo tiene, lo rediriges hacia donde tu quieras

Protegiendo tu WordPress

Cómo evitar que un usuario no sea capaz de visitar tu instalación WordPress?

Quizás una pregunta más relevante sería, por qué querrías tal limitación?

La respuesta es clara, te interesa en caso de utilizar WordPress sólo como backend, es decir, como headless

O en otras palabras, que te interesa cuando tus usuarios no tengan que poder ver nada de WordPress porque su lugar está en el front-end, en servicios como Netlify

Y en este caso, cómo les bloqueas el acceso al servidor WP, si es que de algún modo acceden a él?

Primero aclarar que su acceso sería sin duda limitado (no tendrán rol de administrador), pero de cualquier modo no es un lugar al que deberían poder acceder

Cómo evitarlo? Muy sencillo, basta con añadir una action que se ejecute siempre que un usuario visite cualquier página de tu WP (sea la presunta página web o el dashboard de administración), y en esa acción preguntarse por los roles del usuario y en caso de que no sea administrador redirigirlo donde queramos

Es decir

  1. Hook que se ejecute siempre
  2. Consultar roles del usuario logeado
  3. Actuar en consecuencia

Y el código no podría ser más sencillo

php
function redirect_non_admin_users()
{
$url = 'https://www.kuworking.com';
if (get_current_user_id()) { // se ejecuta sólo si el usuario está logeado
$user = get_userdata(get_current_user_id());
$user_roles = $user->roles; // accedemos a sus roles
if (!in_array('administrator', (array) $user_roles)) { // miramos si entre sus roles está el de admin
wp_logout(); // le deslogeamos
wp_redirect($url); // le redirigimos
exit;
}
}
}
add_action('init', 'redirect_non_admin_users', 15);

Listos!

Qué tal la entrada?
👌 Bien 🙌🙌
👍 Bien, pero algunas cosas podrían explicarse mejor 😬
🤷‍♂️ Da por sentadas demasiadas cosas 😒
🤷‍♂️ A ver, hay poca chicha 😬
🤷‍♂️ Los ejemplos no son muy claros 🙇‍♂️
🤷‍♂️ No se entiende, está mal escrito 👎
✍️ Hay errores, revísalo en cuanto puedas 🙏

Más entradas

Privacidad
by kuworking.com
[ 2020 >> kuworking ]