Necesito una consulta SQL que pueda ejecutar en PHPmyadmin que agregue un campo personalizado (con un valor) a todas las publicaciones existentes. ¿Alguien puede ayudar? ¿Es esto posible?
windyjonas
Puede hacer esto insertando en la tabla postmeta mediante una consulta de selección en la tabla de publicaciones.
En el siguiente ejemplo, uso wp_ como prefijo de mi tabla, su configuración puede diferir.
insert into wp_postmeta (post_id, meta_key, meta_value)
select ID, 'my-key', 'my-value' from wp_posts where post_type="post";
-
obras. ¡Gracias! ¿Hay alguna forma de verificar si existe la clave meta para no agregar duplicados?
– Alex
30 de junio de 2010 a las 0:04
-
Funcionó perfectamente. Solo quería agregar una pequeña actualización ya que esta declaración agrega el postmeta para cada elemento, incluidos los archivos adjuntos, las páginas, etc. Agregué una declaración DONDE al final para que solo agregue la clave para las publicaciones:
insert into wp_postmeta (post_id, meta_key, meta_value) select ID, 'my-key', 'my-value' from wp_posts WHERE post_type = 'post'
– gofre
26 mayo 2011 a las 16:20
Juan P Bloch
Sí, esto es posible, pero es desaconsejable. Sus datos podrían perderse la próxima vez que actualice. Si no planea actualizar, entonces está dejando brechas de seguridad en su sitio. La forma recomendada de hacer esto es usar la tabla postmeta. Para eso existe.
EDITAR
Ahora que entiendo mejor la pregunta, ignore la parte anterior. Ver comentarios para más detalles.
-
No califiqué tu respuesta. No tengo una cuenta aquí, así que ni siquiera puedo hacer eso de todos modos 🙂
– Alex
29 de junio de 2010 a las 15:31
-
Creo que Alex quiere decir cómo puede crear campos personalizados de WordPress (que usarían el
postmeta
table) con SQL, en lugar de cómo puede agregar nuevas columnas a la tabla de publicaciones (que parece ser cómo lo has interpretado, John). Sin embargo, el voto negativo parece poco caritativo. En cuanto a tu pregunta Alex, no creo que puedas hacer esto usando una sola instrucción SQL, necesitarías recuperar todas las ID de publicación y luego agregar una fila a lapostmeta
tabla para cada publicación que contenga los datos de su campo personalizado.– Ricardo M.
29 de junio de 2010 a las 16:07
-
ah Creo que tienes razón, Ricardo. FWIW, Alex, nunca pensé que lo habías rechazado. En general, las personas que hacen preguntas están interesadas en encontrar la respuesta y se comunicarán antes de votar. El ‘tú’ en mi comentario debería tener todos los pronombres impersonales.
– John P Bloch
29 de junio de 2010 a las 16:53
-
Ricardo tiene razón. No parece haber una forma de usar SQL para hacer esto. Sugeriría usar un script de complemento que se pueda ejecutar desde el área de administración para hacer lo que Richard sugirió.
– John P Bloch
29 de junio de 2010 a las 16:54