Blog personal de IT, viajes y otros hobbies

Etiqueta: tip

Quitar las etiquetas y categorías por defecto de las entradas

WordPress por defecto asigna dos taxonomías a nuestras entradas: las clásicas categorías y etiquetas. El tema es que no siempre las necesitamos y mi filosofía de trabajo es que si algo no es necesario para el cliente mejor quitarlo para evitar posibles dolores de cabeza.

Remover estas taxonomías de las entradas es muy sencillo, basta con agregar el siguiente código al functions.php de nuestro tema o bien a un fichero de configuración de un plugin.

/**
 * Esta función quita las etiquetas de las entradas.
 */
function mgwp_unregister_tags() {
   unregister_taxonomy_for_object_type( 'post_tag', 'post' );
}
add_action( 'init', 'mgwp_unregister_tags' );
/**
 * Esta función quita las categorías de las entradas.
 */
function mgwp_unregister_categories() {
   unregister_taxonomy_for_object_type( 'category', 'post' );
}
add_action( 'init', 'mgwp_unregister_categories' );

Como puedes ver la función unregister_taxonomy_for_object_type nos permite quitar cualquier taxonomía de cualquier tipo de post.

En caso de que necesites quitar las dos taxonomías a la vez, une las dos líneas en el mismo action ⬇️ :

/**
 * Esta función quita las categorías y las etiquetas de las entradas.
 */
function mgwp_unregister_categories() {
   unregister_taxonomy_for_object_type( 'post_tag', 'post' );
   unregister_taxonomy_for_object_type( 'category', 'post' );
}
add_action( 'init', 'mgwp_unregister_categories' );
mensajes personalizados en wordpress

Cambiar los mensajes de actualización de tus Custom Post Types

En algunas ocasiones es necesario modificar los mensajes que despliega WordPress por defecto al publicar o editar tus Custom Post Types: tal vez porque quieras ocultarlos ya que tus CPT’s no deban ir a una página en particular y evitar así un innecesario 404 o bien para ajustar las notificaciones a las necesidades de tu proyecto.

En lugar de mostrar estos típicos mensajes:

mensaje de entrada publicada por defecto

Podríamos tener mensajes más divertidos como:

mensajes de actualizacion personalizado

¿Qué filtro usamos?

Para poder implementar estos mensajes personalizados utilizaremos el filtro post_updated_messages. Pega el siguiente código en tu functions.php y modifica los mensajes que creas necesario.

<?php
/**
 * Mensajes personalizados para Custom Post Types
 *
 * @param   array $messages Mensajes por defecto.
 * @return  array 			Devuelve un array con los nuevos mensajes
 */
function updated_messages_cb( $messages ) {
    $messages['custom-post-type-name'] = array(
		0  => '', // Unused. Messages start at index 1.
		1 => __( 'Post updated.' ) . $view_post_link_html,
		2 => __( 'Custom field updated.' ),
		3 => __( 'Custom field deleted.' ),
		4 => __( 'Post updated.' ),
		/* translators: %s: date and time of the revision */
		5 => isset( $_GET['revision']) ? sprintf( __( 'Post restored to revision from %s.' ), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
		6 => __( 'Post published.' ) . $view_post_link_html,
		7 => __( 'Post saved.' ),
		8 => __( 'Post submitted.' ) . $preview_post_link_html,
		9 => sprintf( __( 'Post scheduled for: %s.' ), '<strong>' . $scheduled_date . '</strong>' ) . $scheduled_post_link_html,
		10 => __( 'Post draft updated.' ) . $preview_post_link_html,
    );
    return $messages;
}
add_filter( 'post_updated_messages', 'updated_messages_cb' );

Vamos a analizar el código:

  • Línea 10: Deberemos reemplazar el valor "custom-post-type-name" por el nombre del Custom Post Type que vayas a utilizar.
  • De la línea 11 a la 22: Aquí tenemos todas las acciones que puede recibir un Post o Custom Post Type. Modificaremos el texto por aquel que se ajuste a las necesidades del proyecto. Las variables $view_post_link_html y $preview_post_link_html contienen los enlace para ver la plantilla single.php del Custom Post Type. En caso de que no necesitemos este enlace podemos borrar la variable sin problemas.

Foto: Patrick Denker

Funciona con WordPress & Tema de Anders Norén