Sintaxis correcta para inserciones en la base de datos desde un plugin

14 dic 2010, 18:04:10
Vistas: 390
Votos: 0

Estoy probando un script para crear una inserción en la base de datos. ¿Es esta la sintaxis correcta para la inserción o necesito obtener una referencia a global $wpdb y usarla?

<?php
/*
Plugin Name: Test Database Insert
*/

function test_db_insert()
{
INSERT wp_terms(term_id, 'name', slug) VALUES (1, 'test', 'test');
INSERT wp_term_taxonomy(term_taxonomy_id, term_id, taxonomy, parent) VALUES (1, 1, 'category', 0);
INSERT wp_term_relationships(object_id, term_taxonomy_id, term_order) VALUES (1, 1, 0);
}

register_activation_hook(__FILE__, 'test_db_insert');
0
Todas las respuestas a la pregunta 2
0

Esto parece SQL crudo que no tendrá sentido para PHP en absoluto.

Puedes ejecutar estas consultas como consultas crudas usando $wpdb->query() pero es más apropiado usar su método $wpdb->insert().

Consulta Clase wpdb > Insertar filas en el Codex.

14 dic 2010 18:25:25
3

No deberías necesitar usar SQL para eso. Reemplázalo con:

wp_set_object_terms(1, 'test', 'nombre_de_la_taxonomia');

…donde nombre_de_la_taxonomia es el nombre de la taxonomía.

14 dic 2010 19:15:39
Comentarios

Parece ser el más simple, pero no estoy seguro de que haga exactamente lo que quiero. ¿Puedo definir el term_id del nuevo término (asumiendo que no existe ya)?

Scott B Scott B
14 dic 2010 22:19:06

No, pero — a riesgo de sonar superficial! — ¿por qué querrías hacerlo? Seguramente lo único que importa es que el ID sea único, ya que nunca es visto por nadie.

Rob Miller Rob Miller
15 dic 2010 12:13:47

Estoy usando cat_id = 1 para ocultar la categoría sin categorizar y todos sus hijos, ya que los uso para un propósito específico.

Scott B Scott B
26 dic 2010 19:17:38