Incluir un menú de migas de pan a nuestro módulo desde un Bloque o un Controlador en Magento 2

Desde un Bloque 

Declaramos la clase UrlInterface y que nos permitirá usar los métodos getBaseUrl(), getUrl(), getCurrentUrl(), getUrl(‘test/test2’) , etc … ya que necesitaremos usarlos en nuestro menú de migas de pan. En un controlador no necesitamos hacer esto ya que ObjectManagerInterface es llamado por la factoría de páginas PageFactory.

En el constructor de nuestro bloque inyectamos la dependencia UrlInterface para poder utilizarla.

Creamos el método addbreadcrumb() en nuestro bloque y que se encargará de generar el menú de migas de pan personalizado (breadcrumb) en nuestra página.

Y por último llamamos al método addbreadcrumb() que acabamos de crear desde el template que deseemos:

Desde un controlador

Desde un controlador es mas sencillo, tan solo tenemos que crear nuestro método encargado de generar las migas de pan.

Filtrar Post de una Taxonomía en WordPress

En ocasiones querremos filtrar los post de una taxonomía perteneciente a algún post_type personalizado que tengamos creada.

En este caso por ejemplo filtramos los post_type hoteles y que pertenezcan a la categoría/tag de Madrid.

La Url de nuestro ejemplo sería /hoteles/madrid/

Si quisiéramos mostrar los post tan solo tenemos que recorrer el array.

 

Limitar el acceso a sus propios post al perfil author en WordPress

Tan solo hay que incluir este código en nuestro fichero functions.php de nuestro tema para que cada author solo puede tener acceso a los post que le pertenecen.

Pre_get_post es un hook que nos permite modificar las consultas a la base de datos y current_user_can() retorna true si tiene la capacidad de editar otros post por lo que le decimos que consulte solo los post del autor logueado.

 

Denegar el acceso a menús a un rol determinado de usuario en WordPress

Para quitar el acceso a menús del panel de administración a un rol determinado de usuario en WordPress, usaremos la función wp_get_current_user()  que nos permite el acceso a información del usuario que ha logueado (email, nombre, roles, etc …).

Una vez que sabemos los roles del usuario logueado comparamos con el rol deseado y utilizamos remove_menu_page() para quitarle el acceso a post_types, páginas, plugins,  etc …

 

Creando un sencillo Plugin para WordPress de nuestro Bootstrap Slider, parte II

Vamos a  crear un sencillo plugin de nuestro Bootstrap Slider para mantener organizado nuesto fichero functions.php. Para ello solo tendremos que mover el código que incluimos en nuestro fichero functions.php de como crear un Bootstrap slider para WordPress Parte I.

Crearemos una nueva carpeta en /wp-content/plugins/ y llamaremos por ejemplo bootstrapSlider/slider.php y en ella copiaremos el siguiente código.

El siguiente fichero que vamos a crear es bootstrap-slider.php con el código de nuestra función. Y un fichero index.php que dejaremos vacío para proteger el listado del directorio si fuera el caso.

Lo siguiente es abrir nuestro gestor y desde el menú plugins activarlo. De esta manera lo podremos reutilizar, mejorar, además de tenerlo todo más organizado.

Incluir un slider creado con Bootstrap 4.1 y administrable por WordPress.

Vamos a incluir a nuestro Theme de WordPress un slider creado con Bootstrap 4.1. También incluiremos de una forma  muy sencilla un área gestionable para este tipo de post.

Lo primero que debemos hacer es editar el fichero functions.php de nuestro theme en el que incluiremos las llamadas a las librerías de bootstrap y sus dependencias (jQuery, etc …).

Lo segundo que incluiremos es el código de gestión del slider para así gestionarlo más fácilmente. Para ello usaremos la función register_post_type($type, $args).

Ahora si entramos en nuestro gestor de WordPress veremos que se ha creado un nuevo menú para gestionar las entradas del slider. Si nos molestara podremos cambiarlo de posición.

El penúltimo paso es incluir es incluir nuestro slider al theme que estemos usando o el que estemos creando.  En mi caso lo he incluido directamente al header.php. Lo que hago es y usar get_template_part() para llamar al fichero que contiene el código  del slider y mantener un poco de orden en mi theme.

Y como último paso es incluir nuestro código el el fichero slider.php.

Os tendría que quedar algo parecido a esto (el estilado al 100% y otras detalles de CSS ya son personal de cada uno):

Y eso es todo!

Cómo utilizar correctamente register_nav_menus() y wp_nav_menu() en WordPress

Para poder utilizar varios menús en nuestro WordPress desde el apartado de apariencia del gestor tendremos que seguir unos pasos previamente.

Lo primero que vamos a realizar es registrar dichos menús (tantos como deseemos) para posteriormente poder utilizarlos. Para ello tenemos que editar el fichero functions.php de nuestro template de WordPress. Es en ese fichero donde utilizaremos la función register_nav_menus() para registrarlos o definirlos.

Una vez registrados los menús podemos ir a nuestro gestor de WordPress y en Apariencia->Menús->Gestionar Ubicaciones y ahí los tendremos que poder ver declarados.  En como crear paginas y asignarlos a los menús no voy a entrar ya que eso es trivial.

El último paso es hacer cualquiera de esos menús visible en nuestro Theme. Para ello tendremos que editar el fichero header.php por ejemplo y le vamos a incrustar uno de los menus que hemos creado (en este caso el que indetifiqué como first) utilizando la función wp_nav_menu().

Muestro con un comentario todas las opciones que podemos utilizar para personalizar el menú usando wp_nav_menu() y que uso tendría cada una de ellas para que se entienda mejor.

Más información: wp_nav_menus() y register_nav_menus().

Netbeans, compresión CSS automática

Si estás utilizando SASS verás que por defecto los ficheros SCSS compilados  no son optimizados para disminuir su tamaño.

Para ello tenemos que ir a las propiedades de nuestro proyecto en , File > Project Properties > CSS Preprocessors > Sass tab > Compiler options y en Compiler Options incluir la siguiente linea: –style compressed

En la imagen se puede ver más claro:

SASS define el style nested por defecto, que es el anidamiento en sangría de los estilos para que sea más sencilla y legible su lectura. También esta el style expanded que seria un estilo por linea pero sin la sangría del nested, (comúnmente usado por la mayoría de maquetadores web). Y el método style compact que agrupa todos los atributos en una sola linea.