Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Crear nuevo post en WordPress manualmente en PHP

Estas en el tema de Crear nuevo post en WordPress manualmente en PHP en el foro de WordPress en Foros del Web. Buenas, he estado buscando algun artículo para poder crear un post o artículo dentro de un Wordpress con PHP, pero no encuentro nada. La verdad ...
  #1 (permalink)  
Antiguo 15/03/2010, 13:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Crear nuevo post en WordPress manualmente en PHP

Buenas,

he estado buscando algun artículo para poder crear un post o artículo dentro de un Wordpress con PHP, pero no encuentro nada.

La verdad es que tengo el CSV Import como plug-in pero me va fatal, tengo que insertar dentro del Wordpress mas de 29000 post y aunque lo hago a trozos el mortal de necesidad, y me gustaria programar yo mismo la inserción de post.

Tengo que sacar la información de un osCommerce, que para eso no hay problema, el problema viene que hay varias tablas con el Wordpress que no se como se han de relacionar.

Alguien ha hecho alguna vez este proceso? O ya hay algo hecho ?

Una vez hecho esto luego aprovecharé el código para hacer un "cron job" e insertar los artículos nuevos que vayan apareciendo cada dia.

P.D.: He probado a instalar un plug-in para el Wordpress que se llama "osCommerce" pero no me funciona.

Saludos!
  #2 (permalink)  
Antiguo 15/03/2010, 13:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Crear nuevo post en WordPress manualmente en PHP

pues entonces tu problema es de Wordpress, es obligatorio que estudies la estructura de su base de datos... después ya es mas sencillo hacer las consultas necesarias... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/03/2010, 13:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Wordpress
  #4 (permalink)  
Antiguo 15/03/2010, 15:47
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Ok, disculpad, como el código es en PHP creia que era mas apropiado en el otro sitio.

Bien, el problema es que no sé dónde puedo sacar información sobre como crear un post manualmente ?

Hay un par de tablas que no se como estan relacionadas, en concreto:

wp_term_relationships
wp_term_taxonomy
wp_postmeta

estan son las 3 tablas que no sé como se relacionan con "wp_posts" y "wp_terms".

Un saludo!
  #5 (permalink)  
Antiguo 16/03/2010, 05:58
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 16 años, 2 meses
Puntos: 41
Respuesta: Crear nuevo post en WordPress manualmente en PHP

es muy fácil, wordpress ya tiene una función para insertar post.

http://codex.wordpress.org/Function_...wp_insert_post

Código:
<?php
require('../wp-load.php');

// Create post object
  $my_post = array();
  $my_post['post_title'] = 'My post';
  $my_post['post_content'] = 'This is my post.';
  $my_post['post_status'] = 'publish';
  $my_post['post_author'] = 1;
  $my_post['post_category'] = array(8,39);

// Insert the post into the database
  wp_insert_post( $my_post );

?>
si te da problemas al enviar tíldes, utiliza utf8_encode a la hora de insertar el título y la descripción... y problema resuelto.
  #6 (permalink)  
Antiguo 16/03/2010, 10:55
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Perfecto! Le voy a dar un vistazo!

La verdad es que con el Wordpress no había trabajado.

Con este sistema habéis probado a insertar una gran cantidad de información ?

Lo digo, porque con el CSV Import tenía problemas por la tardanza en insertar unos 29000 post.

Un saludo!
  #7 (permalink)  
Antiguo 16/03/2010, 11:08
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 16 años, 2 meses
Puntos: 41
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Hombre... yo utilizo este método para crear bots actualizadores y que inserten la información en el wordpress y sin problemas, aunque obviamente no son 29000 de golpe..., quizás te conviene hacer un script con paginacion e ir pinchando en cada página una ves que haya terminado de cargar la página.
  #8 (permalink)  
Antiguo 16/03/2010, 11:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Cita:
Iniciado por codig0 Ver Mensaje
Hombre... yo utilizo este método para crear bots actualizadores y que inserten la información en el wordpress y sin problemas, aunque obviamente no son 29000 de golpe..., quizás te conviene hacer un script con paginacion e ir pinchando en cada página una ves que haya terminado de cargar la página.
Si..., es que el problema viene al principio que tengo que hacer un volcado de todo el sitio. Una vez hecho, luego crearé un cron job que solamente me vaya pasando los productos que se crean diariamente.

Lo que haré es hacerlo de 1000 en 1000.

Muchas gracias!

Os cuento como me ha ido!

Un saludo!
  #9 (permalink)  
Antiguo 16/03/2010, 18:19
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Crear nuevo post en WordPress manualmente en PHP

i_minex, por tu comentario inicial veo que ya estás correctamente encaminado respecto a la creación de un script de migración.

Cita:
Iniciado por i_minex
el problema viene que hay varias tablas con el Wordpress que no se como se han de relacionar.
Wordpress trabaja con el sistema de taxonomías, el cual consiste en una combinación genérica de varias tablas para organizar y devolver los datos en variadas formas, además de permitirte construir maneras adicionales de obtenerlos.

La tabla wpdb->posts también trabaja de forma genérica. Bien se trate de entradas, páginas, imágenes, multimedia, etc, cada una ocupará un registro en dicha tabla, es decir, se considerará un post. La diferencia es que existen ciertos campos dentro del registro que las diferencia en cuanto al tipo.

En fin, para proceder con la migración de contenido puro y duro debes tener en cuenta 4 tablas: wpdb->posts para el contenido en sí y wpdb->terms, wpdb->term_taxonomy y wpdb->term_relationships para organizarlas en categorías.

Como bien menciona codig0 existe un cúmulo de recursos internos (funciones y hooks) para ayudarte a asumir tal tarea. Sin embargo en estos casos de gran volúmen me inclinaría a trabajar directamente con la base de datos, dejando los recursos de Wordpress para los obligatorios ajustes posteriores. Pero ese soy yo; quizás existan métodos más ágiles.
  #10 (permalink)  
Antiguo 17/03/2010, 11:53
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Gracias por contestar,

de momento para exportar los datos de osCommerce he creado un XML con el XMLWriter, me ha funcionado todo perfecto.

Ahora estoy en el siguiente paso, como son en dominios distintos debo guardar el fichero XML en la otra ubicacion. Para este uso utilizo las librerias cURL y de momento también lo tengo todo controlado.

El próximo paso es ya crear los POST's. De momento lo probaré con el método que me puso Codig0, aunque entiendo que será muy lento para mucha información de momento utilizaré este sistema. Voy a intentar hacerlo en varias veces, luego, una vez insertada la gran mayoria de información, programaré un cron job, el cual solo inserte los productos que se han insertado el mismo dia ( 100 - 200 como maximo ).

Aún me faltan un par de pasos para tenerlo finalizado, espero tenerlo apunto en un par de dias, ya os iré contando.

P.D.: La otra forma que me has comentado, es la que queria hacer yo mismo. Pero al ver que debía estudiar el funcionamiento de las tablas y no parecia muy tribial me he decidido hacerlo de esta forma "menos automática", de todas formas gracias por indicarmelo.

Un saludo
  #11 (permalink)  
Antiguo 18/03/2010, 15:51
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Tengo una nueva duda.

Estoy insertando los POST's y una vez revisado el XML que creo para luego hacer la importación solo me inserta unos 340.

Como puedo saber qué error me da ? Simplemente se para el proceso pero no sé como saber el error.

Hay algun control de errores que pueda utilizar ? O simplemente puedo comprobar si me devuelve el ID ?

Un saludo!
  #12 (permalink)  
Antiguo 24/03/2010, 15:50
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Problema con "wp_insert_post"

Bien,

después de hacer un proceso para importar los datos de un oscommerce me encuentro que solo me hace la importación de unos 300 posts cada vez.

Si miro el LOG del servidor me aparece este mensaje:

PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/vhosts/xxx.com/subdomains/blog/httpdocs/wp-includes/plugin.php on line 302

A alguien se le ocurre que puede ser ?

En ningún momento me pone que falta memoria, de todas formas al principio, llamo a la función ini_set y le pongo un valor elevado de memoria.

Tengo todos los plugins desactivados, no se... es muy raro.

Un saludo!
  #13 (permalink)  
Antiguo 26/03/2010, 04:14
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Abre el my.ini (archivo de configuración de tu MySQL) y sube el tiempo de 30 a 180. Reinicia el servidor y listo.

Por favor no abras temas nuevos para tratar un caso ya abordado. Tópicos combinados.
  #14 (permalink)  
Antiguo 26/03/2010, 09:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Cita:
Iniciado por metacortex Ver Mensaje
Abre el my.ini (archivo de configuración de tu MySQL) y sube el tiempo de 30 a 180. Reinicia el servidor y listo.

Por favor no abras temas nuevos para tratar un caso ya abordado. Tópicos combinados.
El problema es que tengo el dominio contratado con una empresa y no puedo cambiar dicho parametro. Hay alguna función en PHP que pueda suplir dicha modificación ?

Por ejemplo el "set_time_limit(0);" ?

Un saludo!
  #15 (permalink)  
Antiguo 26/03/2010, 12:53
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Crear nuevo post en WordPress manualmente en PHP

¿Qué??...

Por el amor de Alá, haz esas tareas en un servidor local.

Apenas puedo imaginar proceder con tan colosal labol en remoto.
  #16 (permalink)  
Antiguo 26/03/2010, 13:24
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Cita:
Iniciado por metacortex Ver Mensaje
¿Qué??...

Por el amor de Alá, haz esas tareas en un servidor local.

Apenas puedo imaginar proceder con tan colosal labol en remoto.
Pero es que el problema esta en que lo hago de 500 post's en 500. Asi que la tarea tampoco es tan grande. Ni se me había pasado por la cabeza hacer de golpe las 30000 referencias!

Pero ni haciendolo de 500 en 500 tampoco me funciona.

Haciendolo asi no puedo utilizar un servidor remoto ?

Un saludo!
  #17 (permalink)  
Antiguo 26/03/2010, 14:17
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 5 meses
Puntos: 832
Respuesta: Crear nuevo post en WordPress manualmente en PHP

No entiendo la insistencia de utilizar un servidor remoto. El error que te devuelve el sistema es muy específico y se soluciona como te indiqué, sin importar que hagas 29.000 referencias o 300. Si el tiempo de ejecución supera los límites del servidor, inevitablemente te devolverá error.

Dime si tu computadora anda en Windows o Linux, a fin de indicarte cómo instalar un servidor local, preparar tu Wordpress y llevar la tarea a buen término.
  #18 (permalink)  
Antiguo 27/03/2010, 02:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Crear nuevo post en WordPress manualmente en PHP

Cita:
Iniciado por metacortex Ver Mensaje
No entiendo la insistencia de utilizar un servidor remoto. El error que te devuelve el sistema es muy específico y se soluciona como te indiqué, sin importar que hagas 29.000 referencias o 300. Si el tiempo de ejecución supera los límites del servidor, inevitablemente te devolverá error.

Dime si tu computadora anda en Windows o Linux, a fin de indicarte cómo instalar un servidor local, preparar tu Wordpress y llevar la tarea a buen término.
Mi ordenador es un macbook, de todas formas mi idea final es que cada dia se ejecute un cron job y que las entradas nuevas ( 200 - 400 ), se inserten automaticamente, asi que sino puedo insertar almenos esta cantidad de posts en remoto, mucho me temo que tendre que recurrir a otro tipo de blog.
Por cierto acabo de hacer la prueba y de 300 en 300 me funciona.

Un saludo!

Etiquetas: manualmente, php, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:52.