Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo eliminar elementos del menú de administración de WordPress

Para eliminar elementos de los menús de administración de WordPress, y en consecuencia el acceso a determinadas secciones, se puede añadir el siguiente código al archivo functions.php del theme:

add_action( 'admin_menu', 'prefix_remove_dashboard_item' );
function prefix_remove_dashboard_item() {
  //remove_menu_page( 'index.php' );                  //Dashboard
  remove_menu_page( 'edit.php' );                   //Posts
  //remove_menu_page( 'upload.php' );                 //Media
  //remove_menu_page( 'edit.php?post_type=page' );    //Pages
  remove_menu_page( 'edit-comments.php' );          //Comments
  //remove_menu_page( 'themes.php' );                 //Appearance
  //remove_menu_page( 'plugins.php' );                //Plugins
  //remove_menu_page( 'users.php' );                  //Users
  //remove_menu_page( 'tools.php' );                  //Tools
  //remove_menu_page( 'options-general.php' );        //Settings
}

En el ejemplo de arriba estamos eliminando el acceso a los Posts y a los comentarios.

Cómo estructurar correctamente el archivo functions.php de un theme de WordPress: algunas buenas prácticas

Imago voragine.net
• Por
El archivo functions.php aloja fragmentos de código que queremos cargar en momentos y lugares diferentes, y para no repetirlos cada vez, convertimos en funciones que llamamos para que ejecuten su misión. funcions.php puede contener funciones a las que llamaremos en otras plantillas para construir el theme, otras a las que llamará un usuario desde el administrador (mediante shortcodes por ejemplo), y otras que cargarán funcionalidades adicionales a las que WordPress incluye de base (tipos de contenido personalizado, elementos extra en el administrador...). El archivo functions.php es el lugar para alojar la lógica del theme, las funciones. Y las plantillas alojarán el HTML y las llamadas a las funciones que sean necesarias. Así la edición del theme es más sencilla, porque todas las funciones están en el mismo sitio, y las plantillas permanecen limpias y ordenadas. A su vez las funciones dentro de functions.php deben seguir una estructura que permita llamarlas cuando son necesarias, modificaciones de otros programadores (por ejemplo en un )child theme, activarlas y desactivarlas de manera sencilla... Para tener un buen functions.php, conviene estructurarlo siguiendo una serie de buenas prácticas.

Entradas relacionados en WordPress sin necesidad de plugin

Imago voragine.net
• Por
Hace tiempo publiqué una manera de obtener un listado de posts relacionados en WordPress. Aquel método relacionaba contenido en base a las etiquetas comunes. Publico en esta entrada una receta que además añade las categorías: si no se encuentran etiquetas en común, se analizan las categorías. Además el código está estructurado en una función para incluirlo en functions.php, a la que podemos llamar desde cualquier plantilla, manteniendo el theme limpio y ordenado. El código ha sido desarrollado originalmente por Justin Tallant, que además acompaña el código de una buena reflexión sobre por qué es mejor un desarrollo propio que un plugin en este caso. La versión que publico aquí contiene algunas modificaciones que he añadido.

Formatos de post en voragine.net

Hace tiempo que voragine.net es mi archivo personal de temas que investigo. Cada vez recurro más al blog para buscar un trozo de código, una referencia o un enlace. Personalmente utilizo los post para documentar más o menos detalladamente aprendizajes, como unidades con cierta entidad. Esta regla que me he marcado, sin saber muy bien por qué, hace que no haya publicado muchas cosas interesantes y a las que he querido recurrir después y no he conseguido volver a encontrar en internet.

Para recopilar todos estos materiales me he decidido a implementar los formatos de post en voragine.net: Minientradas, enlaces, citas y vídeos. Aquí va la primera minientrada.

Etiquetas meta en la cabecera de tu WordPress para compartir correctamente tu blog en Facebook y Twitter

Imago voragine.net
[actualizado el ] • Por

Al compartir un contenido de una web en Facebook y Twitter podemos definir la información que aparecerá en cada uno de los timelines: el título, un resumen del contenido, una imagen, incluso algo de información sobre el autor. Para Facebook basta con añadir unas cuantas etiquetas meta que definan estos contenidos; en el caso de Twitter hay que hacer además una petición para que concedan al dominio la capacidad de generar lo que han llamado cards, el sistema que permite añadir información a los tuits, más allá de los 140 caracteres.

Lo interesante es generar estas etiquetas de manera dinámica usando las funciones de WordPress, para que se adapten al contenido de cada página de nuestra web.

El sistema de revisiones en WordPress: cómo deshabilitarlo o limitarlo, y cómo eliminar todas las revisiones

Imago voragine.net
[actualizado el ] • Por
El sistema de revisiones de WordPress es una de esas grandes ideas que no usa más del uno por ciento de sus usuarios de WordPress que conozco. La mayoría de los blogs no necesitan un sistema de control de cambios. Desde mi punto de vista debería ser una opción deshabilitada por omisión, y que solo fuese funcional tras activarla voluntariamente. Las revisiones que se generan automáticamente cada vez que hacemos un cambio en un post, ocupan varias veces más espacio en la base de datos que el contenido publicado. Por ejemplo, en voragine.net hay 225 post publicados y 910 revisiones. Esta cantidad extra de información hace que las consultas a la base de datos sean mucho más lentas, aumentando los tiempos de carga de la página.

Nuevas plataformas para blogs, recuperando la esencia del blogging

Imago voragine.net
[actualizado el ] • Por
La tendencia actual de las plataformas de blogging es la simplicidad, tanto funcional como estética: gestores de contenidos con las capacidades imprescindibles para escribir y gestionar posts; interfaces de usuario limpias y mínimas que priorizan la experiencia de lectura por encima de todo. Una especie de vuelta a los orígenes, en la que se recupera la idea de que lo importante de tener un blog es escribir. Así están proliferando las plataformas de blogging sencillas y limitadas, que tienden hacia lo mínimo.

¿Son nuestros los espacios digitales que alquilamos?: el ataque de fuerza bruta a WordPress en los servidores de CDMon

Imago voragine.net
• Por
Imagina que llegas un día a tu casa y al ir a meter la llave en la cerradura del portal, un señor policía te sujeta la mano y te dice, con mucha educación, que no puedes pasar. Tú le dices que vives allí, y le enseñas la llave como prueba. Él te explica que hay una banda de ladrones rubios en el barrio y que no dejan pasar a ningún rubio como medida preventiva, por orden del propietario. Maldita ascendencia nórdica, piensas, sin acabar de creértelo. Llamas a tu casero que te confirma que él mismo he contratado a los policías. Te dice que lo siente, pero que por la seguridad de tu vivienda, no puede dejarte pasar. Una historia absurda pero real: esto es lo que les pasó hace un mes a los inquilinos de CDMon.

Markdown y WordPress

Imago voragine.net
[actualizado el ] • Por
Ésta es la primera entrada que publico en voragine.net usando markdown. Estoy escribiendo en el editor de WordPress y es increíble no tener que levantar los dedos del teclado para crear una lista, poner texto en negrilla o crear un enlace. Aumento considerable de comodidad y rapidez no tener que ir de teclado a ratón y de ratón a teclado.

Personalizando el loop de WordPress con WP_Query->set() para casos y plantillas determinados

Imago voragine.net
[actualizado el ] • Por
Configurar una query para conseguir el loop que necesitamos en una plantilla determinada de WordPress es fácil: basta crear una query personalizada mediante WP_Query. Hay veces que solo queremos modificar una variable de la query, y para un caso concreto, no para toda la template. Por ejemplo en la template archive.php y solo para las queries que afecten a una taxonomía determinada. En estos casos, quizás prefiramos no ensuciar el archivo de la template, archive.php en nuestro ejemplo. Lo que podemos hacer es hacerlo usando el método set() de WP_Query en una función que incluiremos en el archivo functions.php de nuestor theme.