Cómo poner una taxonomía personalizada por defecto en entradas nuevas

contacta     ·     sobre     ·     azar     ·     buchaca     ·     manifiestos    ·   

  • Forma

    La intención, la mirada, la propuesta. Dónde yace lo que parece haber cuajado en un proceso de meditación-acción.

Cuando escribes una nueva entrada puedes elegir la categoría por defecto en Ajustes > Escritura, pero ¿qué pasa si tengo custom taxonomies y quiero que también salgan por defecto?
Para lograr que en este blog pueda funcionar una lógica de jardín digital necesito que no sólo las entradas por defecto tengan la Categoría: OLFATO sino que además mi taxonomía personalizada (custom taxonomy) Germinación sea igual a Semilla. Aquellas entradas que están etiquetadas como tal son las que se ven en el panel verde de la home, y por tanto son las ideas en proceso.

He encontrado este pedazo de código que ha de ser copiado siempre en el functions.php como sabéis:

/**
* Author: Michael Fields
* Source: http://wordpress.mfields.org/2010/set-default-terms-for-your-custom-taxonomies-in-wordpress-3-0/
* Thanks a lot for the nice tweak
*/
/**
* Define default terms for custom taxonomies in WordPress 3.0.1
*
* @author Michael Fields http://wordpress.mfields.org/
* @props John P. Bloch http://www.johnpbloch.com/
*
* @since 2010-09-13
* @alter 2010-09-14
*
* @license GPLv2
*/
function mfields_set_default_object_terms( $post_id, $post ) {
if ( 'publish' === $post->post_status ) {
$defaults = array(
'germinacion' => array( 'semilla' ),
);
$taxonomies = get_object_taxonomies( $post->post_type );
foreach ( (array) $taxonomies as $taxonomy ) {
$terms = wp_get_post_terms( $post_id, $taxonomy );
if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
}
}
}
}
add_action( 'save_post', 'mfields_set_default_object_terms', 100, 2 );
/**
* Just change the 'post_tag' with the taxonomy slug you want to target
* and change 'taco' and 'banana' with the slug of the term you want to make default
* you can add multiple taxonomy at once so the line#19 is applicable only then
*/

Al final vienen las instrucciones en inglés y si vais al enlace original y comparáis con el mío veréis donde he cambiado una línea para que me funcione en mi sitio.

¡Gracias a Michael Fields por el código!

Hagamos de esto una conversación

Deja un comentario

blogroll

Licencia de producción de pares excepto en lo que no sea de mi puño y bit.

Descubre más desde Comunicación Abierta

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo