1. Code
  2. WordPress

Como trabajar con WordPress término Meta: término metadatos API

El primer artículo de esta serie sentó las bases para comprender el funcionamiento de las taxonomías, los términos y la relación entre ambos en el contexto de WordPress. Si todavía no lo has leído y eres totalmente nuevo en el desarrollo de WordPress, te recomiendo que lo leas detenidamente, ya que el actual artículo se va a basar totalmente en lo visto en aquel.
Scroll to top
20 min read
This post is part of a series called How to Work With WordPress Term Meta.
How to Work With WordPress Term Meta: Understanding Taxonomies

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

El primer artículo de esta serie sentó las bases para comprender el funcionamiento de las taxonomías, los términos y la relación entre ambos en el contexto de WordPress. Si todavía no lo has leído y eres totalmente nuevo en el desarrollo de WordPress, te recomiendo que lo leas detenidamente, ya que el actual artículo se va a basar totalmente en lo visto en aquel.

Más aún, conforme vayamos hablando sobre más tipos de metadatos, es importante que revises las anteriores series en las que vimos los siguientes temas:

La razón por la que vale la pena revisar estos artículos es porque en éste van a aparecer algunas de las técnicas que vimos en ellos y además se basará en algunas de las estrategias similares para el trabajo con APIs.

Por encima de todo, este tutorial tiene como objetivo proporcionar un manual sobre cómo trabajar con uno de las APIs de metadatos más nuevas disponibles en WordPress.

Aviso Legal para Desarrolladores

Como se mencionó anteriormente, este artículo está orientado más hacia aquellos que empiezan en el desarrollo con WordPress o que deseen aumentar sus habilidades. Así que si eres un desarrollador avanzado, el contenido que vamos a cubrir en este artículo podría no ser de mucho interés para ti.

Una de las cosas claves a recordar mientras trabajamos en este tutorial es que el código no debe ser utilizado en un entorno de producción. Es decir, pretende únicamente estudiar la API y entender cómo funciona.

El código que estamos escribiendo no es para ser utilizado en un proyecto sea dirigido a un público o grupo de usuarios. La razón principal es que hay temas como la satinización, validación, y salida, que están más allá del ámbito tanto de la anterior serie como de ésta.

Después de que hayamos visto este artículo, pasaremos a temas más avanzados esos, pero por ahora vamos a centrarnos exclusivamente en la API de Metadatos para los Términos.

Un Repaso sobre las Taxonomías y los Términos

Antes de hablar sobre la API de metadatos, asegurémonos de que estamos en la misma página en lo que se refiere a la diversa terminología que utilizaremos. En concreto, tenemos que asegurarnos de que entendemos la relación existente entre las taxonomías y los términos.

En primer lugar, el Codex define taxonomías como:

En WordPress, una "taxonomía" es un mecanismo para agrupar algunas entradas (o enlaces, o tipos de entradas personalizadas).

En una instalación estándar de WordPress, puede imaginártelas como categorías y etiquetas. Pueden ser jerárquicas, como las categorías o sin jerarquía como los términos.

Los términos, por otro lado, se definen como:

En WordPress, un término es una clasificación, grupo o subconjunto dentro de una taxonomía, donde esta última puede ser una categoría, una etiqueta o una taxonomía personalizada. Por defecto, los términos tienen un slug, un título y una descripción. Las taxonomías jerárquicas al igual que las categorías pueden definir a un término padre o ancestro.

Por último, la relación entre las taxonomías y los términos es tal que realmente no pueden existir las unas sin los otros y viceversa (especialmente en las taxonomías jerárquicas). Es decir, una taxonomía de categoría debe tener al menos un término asociado a ella; sin embargo, las taxonomías sin jerarquía no tienen que seguir necesariamente esta regla.

Dicho esto, comencemos a trabajar con la API para los Metadatos de los Términos.

Trabajar Con la API

Como con otras APIs de metadatos disponibles, seremos capaces de hacer cosas como:

  • add
  • update
  • retrieve
  • delete

Y como se trata de una nueva API, puede que no sean evidentes de inmediato algunas de las ventajas de esta API. Aunque en este artículo sólo vamos a explorar algunos de sus fundamentos, vale la pena que consideres algunas de las cosas que se pueden hacer.

Por ejemplo:

  • Asociar colores o imágenes con un término
  • Restringir determinadas entradas pertenecientes a un término
  • Insertar datos binarios, como documentos o archivos PDF, para un determinado término que se puedan ofrecer en el front-end
  • …y más.

Por supuesto, hay muchas más posibilidades. Pero, por ahora, vamos a ver cómo podemos incorporar esto en nuestro trabajo.

Preparar el Tema

Para empezar, vamos a asegurarnos de que estamos en la misma página en lo que respecta a lo que vamos a emplear. En concreto, aquí tienes lo que necesitas, y lo que yo estoy usando.

Una vez tengas todo esto organizado, estaremos listos para para ponernos en marcha. Si necesitas ayuda para configurar el entorno de desarrollo, te recomiendo que visites esta serie de artículos.

Inicio

Lo primero que tenemos que hacer es crear un archivo que contenga todas las tareas que vamos a desarrollar en este tutorial.

Primero, crea tutsplus-término-metadata.php en la raíz del directorio del tema twentysixteen.

A continuación, tenemos que añadir la siguiente línea de código al archivo de functions.php del tema. Esto verificará que hemos incluido nuestro trabajo en el tema.

1
<?php
2
3
/**

4
 * Add the code that allows us to work with the Term Meta API.

5
 */
6
include_once( 'tutsplus-term-metadata.php' );

Cuando refresques el navegador, deberías ver algo como lo que se muestra en la siguiente imagen:

The standard Hello World that comes with WordPressThe standard Hello World that comes with WordPressThe standard Hello World that comes with WordPress

No debería haber ningún mensaje de error, y debería funcionar como si nada hubiese cambiado. Finalmente, si estas trabajando con una instalación nueva de WordPress, la tabla para los metadatos de los término debería estar totalmente vacía:

The empty termmeta database tableThe empty termmeta database tableThe empty termmeta database table

A continuación, con el fin de asegurarnos de que disponemos de una categoría con la que trabajar, sigue adelante y crea una nueva en tu instalación de WordPress. Voy a crear una llamada Main y a asegurarme de que se la he asignado a la entrada Hello World.

Una vez hecho esto, mira la tabla de términos en la base de datos para obtener el term_id (el ID del término). En mi caso, el term_id correspondiente es 2. Tu podría ser distinto, pero lo importante e que sepas cuál es el ID del término en cuestión:

The terms database tableThe terms database tableThe terms database table

Ten en cuenta que esto lo usaremos a lo largo del tutorial.

Añadir Metadatos

Para empezar, es importante saber que la función add_term_meta puede servir a dos propósitos:

  1. La función puede crear valores que no sean únicos asociados al ID único de un término y una key meta.
  2. La función puede crear valores únicos asociados al ID único de un término y una key meta.

La función acepta un identificador para el término, una key meta, un valor meta y un valor booleano opcional que determinará si el valor almacenado va a ser único o no.

Valores Únicos

Primero, vamos a crear un valor único en la base de datos. Introduce el siguiente código en tu editor, actualiza la entrada Hello World y luego observa la tabla de termmeta.

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_add_term_meta' );
4
function tutsplus_add_term_meta( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
  	add_term_meta( $term_id, 'my_meta_key', 'my_meta_value', true );
11
	}
12
13
	return $content;
14
15
}

Deberías ver tu información.

Metadata in the term tableMetadata in the term tableMetadata in the term table

Si cambia el valor de la meta y actualice la página, observará que el valor de la base de datos no ha cambiado. Esto es porque has dicho que esto debe ser un valor único y será el primer valor que está escrito no ser cambiado o sobrescritos.

Esto se logra con update_term_meta, pero vamos a ver en código de momento.

Valores No Únicos

Antes de ver cómo podemos actualizar los términos meta, sin embargo, veamos cómo podemos añadir varios valores a la misma key meta y a un mismo ID de término. El código siguiente es similar al anterior excepto que no estamos pasando true en la función.

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_add_term_metas' );
4
function tutsplus_add_term_metas( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
11
		for ( $i = 0; $i < 3; $i++ ) {
12
13
			$meta_value = "my_meta_value_$i";
14
			add_term_meta( $term_id, 'non_unique_key', $meta_value );
15
16
		}
17
18
	}
19
20
	return $content;
21
22
}

Actualizar Hola Mundo unas cuantas veces y luego echa un vistazo a la base de datos. Deberías ver algo como esto:

Non-unique values being added to the database tableNon-unique values being added to the database tableNon-unique values being added to the database table

¿Tiene sentido? Básicamente, cuando indicas que deseas tener un único valor, el primer valor que introduzcas permanecerá como único valor (a menos que actualices o lo elimines).

Si, por el contrario, no especificas que quieres que sea un valor único, entonces podrás almacenar tantos valores como quieras con el ID del término y la key de la meta.

Esto, sin embargo, hace que la forma de recuperar y borrar información de la base de datos sea diferente; echaremos un vistazo a esto con más detalle más adelante en este artículo.

Actualizar Metadatos

La función update_term_meta de la API nos ofrece un par de buenas opciones. En primer lugar, nos da la posibilidad de añadir una entrada única en la base de datos sin tener que utilizar el cuarto parámetro de add_post_meta.

En segundo lugar, nos permite actualizar una parte específica de metadatos siempre que sepamos cual era el valor anterior. Echemos un vistazo a ambos casos partiendo del estado actual de nuestra base de datos.

Añadir Datos Únicos

Para añadir metadatos únicos, podemos hacer una llamada que es muy similar a la que hicimos en el primer ejemplo a add_term_meta. Pero, esta vez, usaremos update_term_meta. Por ejemplo, examina el siguiente código:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_update_term_meta' );
4
function tutsplus_update_term_meta() {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
		update_term_meta( $term_id, 'update_key', 'my_unique_update_value' );
11
	}
12
13
	return $content;
14
15
}

Actualizar la entrada Hola Mundo un par de veces, no importa cuántas veces lo hagas, verás siempre un único valor en la base de datos. Si estás siguiendo el código, deberías ver algo como esto:

Adding metadata via the update_term_meta functionAdding metadata via the update_term_meta functionAdding metadata via the update_term_meta function

Pero ¿qué pasa cuando hay varios registros con la misma meta key y queremos actualizarlos?

Actualizar un Registro No Único

Para actualizar un registro que tiene el mismo ID de término y la misma key meta, es importante conocer el valor anterior. En nuestro caso, sabemos que tenemos un valor llamado my_meta_value_1.

Para ello, podemos actualizar esta fila en concreto especificando el valor nuevo y el antiguo en la función update_term_meta. Para ello, echa un vistazo en al siguiente código:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_update_term_metas' );
4
function tutsplus_update_term_metas() {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
		update_term_meta( $term_id, 'non_unique_key', 'my_meta_value_1_updated', 'my_meta_value_1' );
11
    }
12
13
	return $content;
14
15
}

Y luego actualiza la entrada Hola Mundo. Una vez hecho esto, el valor meta actualizado debería tener este aspecto:

Updating non-unique metadataUpdating non-unique metadataUpdating non-unique metadata

Si no ves el mismo resultado, asegúrate de que estás especificado adecuadamente el nombre de la función correcta en tu hook, el ID del término, la key meta y el valor meta anterior correctos.

Recuperar de Metadatos

Para obtener los metadatos, podemos utilizar la función get_term_meta.

Sin embargo, ten en cuenta que cuando recuperemos los metadatos del término, podemos estar tratando con una key de meta que tenga varios valores asociados con él. O podríamos estar tratando con una key meta que tiene sólo un valor único.

Dependiendo de la situación, tendremos que indicarle información diferente a la función.

Recuperar Todos los Metadatos

Recuperar todos los metadatos asociados a un solo término es fácil, como demostrará el siguiente código. A lo que fundamentalmente debes prestar atención es a que los resultados sean devueltos en un array.

En el siguiente ejemplo, vamos a utilizar non_unique_key como nuestra key meta ya que tiene varios valores asociados.

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_get_term_metas' );
4
function tutsplus_get_term_metas() {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
        get_term_meta( $term_id, 'non_unique_key' );
11
    }
12
13
    return $content;
14
15
}

Puedes optar por imprimir los resultados en la pantalla, usar var_dump, o utilizar un depurador para ver la información. Sea cual sea el caso, deberías ver algo parecido a los resultados siguientes:

1
array(3) { [0]=> string(15) "my_meta_value_0" [1]=> string(23) "my_meta_value_1_updated" [2]=> string(15) "my_meta_value_2" }

Este resultado, puedes optar por almacenarlo en una variable y recuperar después un valor concreto desde un determinado índice. O tal vez podrías decidir recorrer los datos y leerlos o manipularlos.

Cualquiera que sea tu caso, se trata de cómo poder recuperar toda la información asociada a una meta key.

Recuperar una Sola Pieza de Metadatos

Cuando hablamos de recuperar una pieza única de metadatos, habitualmente nos estamos refiriendo a que estamos intentando recuperar un único registro de entre muchos (como en nuestro anterior ejemplo); sin embargo, pueden darse casos en los que queramos recuperar un valor meta único asociado a una meta key.

Vamos a hablar sobre este último caso en un momento. Pero primero, veamos un caso en el cual queremos recuperar un valor único de un conjunto de datos que tiene el mismo término ID y la misma meta key.

Advierte en el código inferior, que estamos enviando el cuarto valor, true:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_get_term_meta' );
4
function tutsplus_get_term_meta( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
        get_term_meta( $term_id, 'non_unique_key', true );
11
    }
12
13
    return $content;
14
15
}

Y aquí está lo que nos devuelve:

1
string(15) "my_meta_value_0"

Ten en cuenta que te devolverá el primer valor que encuentre, y lo hará en forma de cadena.

¿Y Si Sólo Existe Un Único Registro?

Si hay un sólo registro, tienes dos opciones:

  1. Puedes recuperar la información sin especificar true.
  2. Puedes recuperar la información especificando true.

Si optas por la primera solución, vas a recuperar un array con un índice y un valor únicos. Como tal, tendrás que extraer el valor de los resultados haciendo algo como $value = $resultado[ 0 ] asumiendo que estes almacenando el resultado de la llamada de la función en $resultado.

Por el contrario, si optas por la segunda opción, podrías esperar que el resultado te sea devuelto en forma de cadena (string).

Sin duda, lo más importante y a destacar sobre la obtención de los valores de esta estrategia en particular es que los valores son únicos según su meta key.

Eliminar Metadatos

Por último, tenemos que ver cómo eliminar los metadatos asociados. Y, para mantener la consistencia con el resto de los ejemplos, esto depende de si hay varias piezas de metadatos asociados a una meta key o un único valor meta asociado a una meta key.

Eliminar Todos los Registros

Si sabes que hay una única meta key que tiene asociados varios valores, puedes utilizar el siguiente código:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_delete_term_metas' );
4
function tutsplus_delete_term_metas( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
        delete_term_meta( $term_id, 'non_unique_key' );
11
    }
12
13
    return $content;
14
15
}

Y esto actualizará la tabla en la base de datos de forma que tenga este aspecto:

Deleting multiple rows of information in the databaseDeleting multiple rows of information in the databaseDeleting multiple rows of information in the database

Si me has estado siguiendo hasta aquí, deberías saber que esto ha eliminado todos los datos asociados con la meta key non_unique_key.

Eliminar un Único Registro

Si quieres eliminar un único registro, puedes hacerlo de dos maneras:

  1. Si conoces el valor meta asociado a la meta key que deseas eliminar.
  2. El valor asociado con la meta key especificada es único en el sentido de que la meta key y el valor meta son únicos.

Para ello, echaremos un vistazo al primer ejemplo, y al segundo de esta sección.

Para eliminar un solo registro del cual conocemos su valor meta asociado, podemos escribir un código que especifique la meta key y el valor meta. Por ejemplo:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_delete_term_meta' );
4
function tutsplus_delete_term_meta( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
        delete_term_meta( $term_id, 'my_meta_key', 'my_meta_value' );
11
    }
12
13
    return $content;
14
15
}

Esto eliminará la fila asociada con esta información de la base de datos.

Eliminar un Registro Único

Por último, si existe un único registro del cual conoces la meta key, pero no sabes el valor meta, todavía podrías eliminar ese registro de la base de datos.

Todo lo que necesitas especificar en el código fuente es la meta key. Obsérvalo en la siguiente función:

1
<?php
2
3
add_filter( 'the_content', 'tutsplus_delete_single_term_meta' );
4
function tutsplus_delete_single_term_meta( $content ) {
5
6
    $category = get_the_category();
7
    $term_id  = $category[0]->term_id;
8
9
    if ( 1 === get_the_ID() && 2 === $term_id ) {
10
        delete_term_meta( $term_id, 'update_key' );
11
    }
12
13
    return $content;
14
15
}

Los lectores astutos probablemente se habrán dado cuenta de que la función anterior es la misma definición de función que proporcionamos al eliminar aquellos registros que tienen todos valores múltiples. Y esto se debe a que son lo mismo.

La diferencia, sin embargo, está en la intención de la función. El propósito o intención de una función a menudo se refleja en el nombre de la función, es una buena practica a la hora de nombrar las funciones. En el caso anterior, hemos querido eliminar todos los metadatos del término. En este caso, hemos querido eliminar una sola pieza de los metadatos del término.

Esto tiene implicaciones cuando tratamos de escribir código de calidad y a la hora de escribir las pruebas unitarias.

El Código Fuente Completo

Aquí, vas a encontrar todo el código que hemos utilizado a lo largo de este artículo, junto con comentarios adicionales que explican lo que está sucediendo en el código. Recuerda que todas estas funciones están enganchadas en the_content, lo cual significa que las funciones se iniciarán cada vez que se carga el artículo.

Así, las llamadas add_filter están comentadas para que puedas activarlas cuando sea necesario.

1
<?php
2
3
//add_filter( 'the_content', 'tutsplus_add_term_meta' );

4
/**

5
 * If we're on the first post and in the category having the

6
 * ID of '2', then we add a unique meta key and meta value to

7
 * the term metadata.

8
 *

9
 * @param    string $content    The post content.

10
 * @return   string              The post content.

11
 */
12
function tutsplus_add_term_meta( $content ) {
13
14
    $category = get_the_category();
15
    $term_id  = $category[0]->term_id;
16
17
    if ( 1 === get_the_ID() && 2 === $term_id ) {
18
		add_term_meta( $term_id, 'my_meta_key', 'my_meta_value_changed', true );
19
    }
20
21
    return $content;
22
23
}
24
25
//add_filter( 'the_content', 'tutsplus_add_term_metas' );

26
/**

27
 * If we're on the first post and in the category having the

28
 * ID of '2', then we add multiple meta values with the same

29
 * meta key to the term metadata.

30
 *

31
 * @param    string $content    The post content.

32
 * @return   string              The post content.

33
 */
34
function tutsplus_add_term_metas( $content ) {
35
36
    $category = get_the_category();
37
    $term_id  = $category[0]->term_id;
38
39
    if ( 1 === get_the_ID() && 2 === $term_id ) {
40
41
        for ( $i = 0; $i < 3; $i++ ) {
42
43
			$meta_value = "my_meta_value_$i";
44
			add_term_meta( $term_id, 'non_unique_key', $meta_value );
45
        }
46
    }
47
48
    return $content;
49
50
}
51
52
//add_filter( 'the_content', 'tutsplus_update_term_meta' );

53
/**

54
 * Updates the term meta value with the specified key. If the value

55
 * doesn't exist, then the record will be created. This will only

56
 * be added if the 'Hello World' page is loaded with the category

57
 * having the ID of '2'.

58
 *

59
 * @param    string $content    The post content.

60
 * @return   string              The post content.

61
 */
62
function tutsplus_update_term_meta( $content ) {
63
64
    $category = get_the_category();
65
    $term_id  = $category[0]->term_id;
66
67
    if ( 1 === get_the_ID() && 2 === $term_id ) {
68
		update_term_meta( $term_id, 'update_key', 'my_unique_update_value' );
69
    }
70
71
	return $content;
72
73
}
74
75
//add_filter( 'the_content', 'tutsplus_update_term_metas' );

76
/**

77
 * Updates the existing value for the metadata that has the 'non_unique_key'

78
 * meta key with the specified meta value. This only happens if we're on the

79
 * post with the ID of one and it has the category ID of '2'.

80
 *

81
 * @param    string $content    The post content.

82
 * @return   string              The post content.

83
 */
84
function tutsplus_update_term_metas( $content ) {
85
86
    $category = get_the_category();
87
    $term_id  = $category[0]->term_id;
88
89
    if ( 1 === get_the_ID() && 2 === $term_id ) {
90
		update_term_meta( $term_id, 'non_unique_key', 'my_meta_value_1_updated', 'my_meta_value_1' );
91
	}
92
93
    return $content;
94
95
}
96
97
//add_filter( 'the_content', 'tutsplus_get_term_metas' );

98
/**

99
 * If we're on the first post and the post has the category ID of '2' then

100
 * retrieve the term meta in the form of an array.

101
 *

102
 * @param    string $content    The post content.

103
 * @return   string              The post content.

104
 */
105
function tutsplus_get_term_metas( $content ) {
106
107
    $category = get_the_category();
108
    $term_id  = $category[0]->term_id;
109
110
    if ( 1 === get_the_ID() && 2 === $term_id ) {
111
        get_term_meta( $term_id, 'non_unique_key' );
112
	}
113
114
    return $content;
115
116
}
117
118
//add_filter( 'the_content', 'tutsplus_get_term_meta' );

119
/**

120
 * If we're on the first post and the post has the category ID of '2' then

121
 * retrieves the first value from the metadata as a string.

122
 *

123
 * @param    string $content    The post content.

124
 * @return   string              The post content.

125
 */
126
function tutsplus_get_term_meta( $content ) {
127
128
    $category = get_the_category();
129
    $term_id  = $category[0]->term_id;
130
131
    if ( 1 === get_the_ID() && 2 === $term_id ) {
132
        get_term_meta( $term_id, 'non_unique_key', true );
133
    }
134
135
	return $content;
136
137
}
138
139
//add_filter( 'the_content', 'tutsplus_delete_term_metas' );

140
/**

141
 * If we're on the first post and the post has the category ID of '2' then

142
 * deletes the meta values associated with the specified key.

143
 *

144
 * @param    string $content    The post content.

145
 * @return   string              The post content.

146
 */
147
function tutsplus_delete_term_metas( $content ) {
148
149
    $category = get_the_category();
150
    $term_id  = $category[0]->term_id;
151
152
    if ( 1 === get_the_ID() && 2 === $term_id ) {
153
        delete_term_meta( $term_id, 'non_unique_key' );
154
    }
155
156
	return $content;
157
158
}
159
160
//add_filter( 'the_content', 'tutsplus_delete_term_meta' );

161
/**

162
 * If we're on the first post and the post has the category ID of '2' then

163
 * deletes the specified meta value associated with the specified meta key.

164
 *

165
 * @param    string $content    The post content.

166
 * @return   string              The post content.

167
 */
168
function tutsplus_delete_term_meta( $content ) {
169
170
	$category = get_the_category();
171
    $term_id  = $category[0]->term_id;
172
173
    if ( 1 === get_the_ID() && 2 === $term_id ) {
174
        delete_term_meta( $term_id, 'my_meta_key', 'my_meta_value' );
175
    }
176
177
	return $content;
178
179
}
180
181
//add_filter( 'the_content', 'tutsplus_delete_single_term_meta' );

182
/**

183
 * If we're on the first post and the post has the category ID of '2' then

184
 * deletes the meta values associated with the specified key.

185
 *

186
 * @param    string $content    The post content.

187
 * @return   string              The post content.

188
 */
189
function tutsplus_delete_single_term_meta( $content ) {
190
191
    $category = get_the_category();
192
    $term_id  = $category[0]->term_id;
193
194
    if ( 1 === get_the_ID() && 2 === $term_id ) {
195
        delete_term_meta( $term_id, 'update_key' );
196
    }
197
198
    return $content;
199
200
}

No es raro encontrar funciones como ésta vinculadas a otro hook como por ejemplo save_post o algo similar. Esto es algo que explicaremos con más detalle en un tutorial avanzado.

Conclusión

Para aquellos que hayan seguido esta serie y las series anteriores que trabajan con el resto de los metadatos de la API, gran parte del material que hemos visto en estas series no deberían ser demasiado difíciles comprender.

Quizás la parte más complicada sobre el trabajo con esta API consista en ejercitar tu creatividad para descubrir las múltiples maneras en que puede realmente ser utilizada. Pero como ya hemos visto cómo trabajar con la API, ponerte a trabajar en ello no debería ser terriblemente difícil.

Recuerda que en las próximas semanas, vamos a ver técnicas avanzadas y adecuadas para la escritura y la lectura de información en la base de datos, de manera que estemos en condiciones de trabajar con ellas en un entorno de producción.

Mientras tanto, si usted estás buscando otras utilidades que te ayuden a construir conjunto propio y creciente de herramientas para WordPress o código para estudiar y convertirte en un desarrollador más versado en WordPress, no te olvides de ver lo que tenemos disponible en Envato Market.

Recuerda que puedes revisar todos mis cursos y tutoriales en la página de mi perfil, y puedes seguirme en mi blog o Twitter, @tommcfarlin, en donde hablo sobre diversas prácticas de desarrollo de software y cómo podemos aplicarlas en WordPress.

Por favor no dudes en dejar tus preguntas o comentarios en la siguiente sección, tengo la intención de responderlos todos.

Recursos Relacionados