Programador WordPress en Barcelona : Importar datos a WordPress

Wordpress importar datos WordPress importar datos

WordPress es un CMS (Content Management System) o Sistema de Gestión de Contenidos, que sirve para crear y administrar fácilmente casi cualquier tipo de sitio Web.

Para hacer una migración e importar o crear un post con php necesitamos unos datos que podemos obtener de muy diferentes fuentes
(“bases de datos”,”xml”,”csv” etc…)

No vamos a entrar como conseguimos estos datos para migrar el contenido, sino que utilizaremos unos datos fijos. Pasos para introducir un post.

1) Primero creamos una carpeta llamada import o como querais en la raiz de wordpreess
2) Creamos un archivo index.php dentro de esta carpeta.
3) Accederemos al script a través de http://www.dominio.xxx/import
4) Si estamos en localhost accederemos a través de http://localhost/nombre-carpeta-wordpress/import

Definimos las siguientes variables

  • $titulo
  • $descripcion
  • $categoria
  • $image_url
  • $image_url2
<?php require("../wp-blog-header.php"); /* Necesario para utilizar las funciones WP */ global $wpdb; $titulo="Mi post en WordPress"; $descripcion="Mi post en WordPress está introducido con un script php"; $categoria="MiCategoria" $image_url ="https://s.w.org/about/images/logos/wordpress-logo-stacked-rgb.png"; /* Ruta de la imágen*/ $image_url2 ="https://s.w.org/about/images/desktops/wp-orange-640x960.png"; /* Ruta de la imágen 2 */ $my_post = array( 'post_title' => $titulo,
'post_content'  => $descripcion,
'post_status'   => 'publish',
'post_author'   => 1,       /* El id del Autor */
'post_type'   => 'post'
);
$post_id = wp_insert_post($my_post);  /* En $post_id tenemos el id del post */

 
Ahora subimos la imágen destacada o thumbnail a WordPress

Ya tenemos definida la variable $image_url

$upload_dir = wp_upload_dir(); /* Conseguimos la ruta de las imágenes de nuestro wordpress */
$image_data = file_get_contents($image_url);  /* Descargamos la imágen */
$filename = basename($image_url);
if(wp_mkdir_p($upload_dir['path'])){
$file = $upload_dir['path'] . '/' . $filename;
}else{
$file = $upload_dir['basedir'] . '/' . $filename;
}
file_put_contents($file, $image_data);
$wp_filetype = wp_check_filetype($filename, null );
/* insertamos un registro de la imágen en la tabla posts */
$attachment = array(
'post_id'  =>$post_id,
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename) ,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $file, $post_id );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $file );
wp_update_attachment_metadata( $attach_id, $attach_data );
set_post_thumbnail( $post_id, $attach_id );

 
Agregamos una categoría a este post

$idcategoria="";
wp_create_category($categoria,0); // Creamos la categoría sin padre
$idcategoria= $wpdb->get_row("SELECT term_id FROM wp_terms WHERE name = '$categoria'");
$idcategoria=$idcategoria->term_id;
$contador=0;
$contador= $wpdb->get_row("SELECT count FROM wp_term_taxonomy WHERE term_id =$idcategoria");
//Actualizamos el número de posts que tiene esta categoría
$contador=(int)$contador->count;
$contador++;
$wpdb->query("UPDATE wp_term_taxonomy SET count = $contador WHERE term_id = $idcategoria");
$wpdb->insert('wp_term_relationships',
array(
'object_id' => $post_id,
'term_taxonomy_id' => $idcategoria,
'term_order' => 0
)
);

 
Agregramos otra imagen tipo wp_attached_file al mismo post

Ya tenemos definida la variable $image_url2

$image_data = file_get_contents($image_url2);
$filename =basename($image_url2);
if(wp_mkdir_p($upload_dir['path'])){
$fileattach = $upload_dir['path'] . '/'  . $filename;
}else{
$fileattach  = $upload_dir['basedir'] . '/' . $filename;
}
file_put_contents($fileattach , $image_data);
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_id'  =>$post_id,
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename) ,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $fileattach , $post_id );
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata( $attach_id, $fileattach  );
wp_update_attachment_metadata( $attach_id, $attach_data );
$wpdb->insert('wp_postmeta',
array(
'post_id' => $post_id,
'meta_key' => '_wp_attached_file',
'meta_value' => $attach_id
)
);

Esto sería lo básico para insertar un post con php
Ver Codex Importing Content

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *