Descubre en este tutorial cómo conseguir que un determinado rol usuario solo pueda subir imágenes con la relación de aspecto concreta gracias a un simple snippet de código.
Si gestionas una web en la que los usuarios/suscriptores puede subir sus imágenes de perfil es posible que te hayas encontrado con el problema de que cada imagen tiene una relación de aspecto distinta (cuadradas, rectangulares…) y cuando se muestran los perfiles dan una sensación demasiado heterogénea.
Una forma de conseguir que el diseño quede más homogéneo y ordenado es obligar a los usuarios a subir imágenes con la misma relación de aspecto (por ejemplo, que todas sean cuadradas).
Esto lo puedes conseguir con un poco de código que revise los atributos de la imagen cuando el usuario la esté subiendo.
Vamos a ver un ejemplo de cómo conseguirlo.
Snippet para limitar la subida de imágenes a una determinada relación de aspecto
Añade el siguiente fragmento al final del fichero functions.php o plugin de funcionalidades:
Para ver este código y los otros 2057 snippets de esta web,
identifícate o suscríbete aquí.
En este código utilizas el filtro wp_handle_upload_prefilter
en conjunción con la función current_user_can
para, que si el usuario no es administrador, solo pueda subir imágenes cuadradas.
Es decir, si el usuario intenta subir una imagen que no tiene una relación de aspecto 1:1 (cuadrada) recibirá un error.
En cambio, los usuarios que tengan rol de administrador podrán seguir subiendo cualquier tipo de imagen a WordPress.
Esto es solo un ejemplo, puedes personalizarlo para que afecte a distintos roles de usuario y/o usar otras relaciones de aspecto.
Conclusión
Ahora ya sabes cómo conseguir que un determinado rol usuario solo pueda subir imágenes con la relación de aspecto que necesites para mantener una coherencia visual (por ejemplo).
¿Alguna duda? Te leo en los comentarios.
Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉