La mejor manera de eliminar mediante programación una categoría / término de una publicación


8

Estoy trabajando en un script para convertir todas las publicaciones en una categoría determinada para usar un indicador de postmeta en su lugar (las pruebas de MySQL me han demostrado que en un sitio tan grande como el mío esto conducirá a una disminución significativa en el tiempo de consulta).

Al convertir publicaciones, solo quiero buscar todas las publicaciones en la categoría, agregar la postmeta y luego eliminar la categoría, lo que me permitirá volver a cargar esa función hasta que no haya más publicaciones en la categoría.

Sin embargo, no puedo encontrar una buena función para eliminar un término de una publicación. Quiero darle el id de publicación y el término taxonomía + ID y que me lo gestionen.

También estoy interesado en complementos que puedan hacer la conversión por mí si alguien sabe de uno. No pude encontrar ninguno que hiciera cat-> postmeta, a diferencia de lo contrario que puede manejarse con el complemento de Scribu.


¿Desea hacerlo a través de la API, o está bien hacerlo con consultas SQL? No será demasiado difícil, solo una consulta para insertar los nuevos valores de postmeta, una para eliminar las relaciones de la categoría posterior y quizás una para actualizar el recuento de categorías.
Jan Fabry

Definitivamente quiero usar la API. La categoría cuenta, etc., no es algo que quiera tener en cuenta en este caso. Wp_get_object_terms () / wp_set_object_terms () ya hará que sea bastante fácil manipular términos, pero esperaba una solución de una función desde el núcleo.
jerclarke

Respuestas:


6

Hmmm, tampoco puedo recordar ni encontrar la función de ajuste.

Hay wp_set_object_terms()que se utiliza en múltiples envoltorios como wp_set_post_categories(). Puede sobrescribir categorías para una publicación.

Para que pueda obtener categorías de publicaciones, verifique si hay una no deseada y vuelva a escribirla, excluyendo las no deseadas en ese caso.


Esta es la mejor solución hasta ahora, y la que probablemente usaré. get_object_terms () para recuperar, desarmar () el que no quiero, luego wp_set_object_terms () para volver a guardar la matriz. Lástima que no haya wp_set_object_term () y wp_remove_object_term ().
jerclarke

Así es como lo hice en el pasado. Es bastante torpe y abundante para mejorar, pero creo que es el mejor patrón disponible.
editor
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.