Esta es una forma de hacerlo. Esto funcionó para mí:
1) simplemente ejecute 2 consultas MySql por separado. El primero inserta los valores de publicación en la tabla wp_posts. Debe insertar en todas las columnas, excepto en la columna "guid", insertar un marcador de posición, como "0".
2) la segunda consulta se ejecuta inmediatamente después de la primera y aquí puede llamar a la función LAST_INSERT_ID() para obtener la última ID de inserción de la consulta anterior. Esta segunda consulta actualiza el campo "guid" con el número de ID correcto.
Puede insertar esto en el bucle para la inserción masiva de mensajes WP del archivo csv, por ejemplo.
Debe hacer esto cuando el sitio esté fuera de línea o bloquear las tablas primero para que no surja ninguna otra solicitud de consulta entre las demás.
Ejemplo: primera consulta (lo siento por el formato de columna, pero es más fácil de depurar):
mysql_query("INSERT INTO wp_posts(
ID,
post_author,
post_date,
post_date_gmt,
post_content,
post_title,
post_excerpt,
post_status,
comment_status,
ping_status,
post_password,
post_name,
to_ping,
pinged,
post_modified,
post_modified_gmt,
post_content_filtered,
post_parent,
guid,
menu_order,
post_type,
post_mime_type,
comment_count
) VALUES (
'null',
'1',
'$timestmp',
'$timestmp',
'$content',
'$posttitle',
'',
'publish',
'open',
'open',
'',
'$postname',
'',
'',
'$timestmp',
'$timestmp',
'',
'0',
'$uiai',
'0',
'post',
'',
'0'
)") or die(mysql_error());
segunda consulta:
$uid = mysql_insert_id();
$uiai = 'http://yoursite.net/wordpress/?post_type=post&p='.$uid;
mysql_query("UPDATE wp_posts SET guid = '$uiai' WHERE ID = '$uid'");
... También, cuando se recorre muchas inserciones, a veces puede maximizar el tiempo máximo de ejecución permitido para el script PHP y la carga se interrumpe. Ayuda a usar set_time_limit (0); a lo largo de la secuencia de comandos por lo que el contador de tiempo máximo permitido se restablece periódicamente.
... espero que esto ayude :)
¿Puedes mostrar un ejemplo de código? –
por ejemplo "Insertar en la tabla (id, nombre, dirección, auto_val) VALUES (NULL, 'John', '10 carriles sicómoro', 'MYSQL_AUTO_INCREMENT')" –