2009-11-03 13 views

Respuesta

28

Usted puede utilizar el objeto de la publicación:

// 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); 

Más información encontró here.

+0

¿Y qué archivos debo incluir? Como quiero hacer un panel de administración separado para wordpress – Uffo

+6

BTW, si desea probar esto, cree un archivo "test.php" en la raíz de su blog y use esta línea antes de este código: require ('./ wp- blog-header.php '); – Volomike

+2

La categoría debe ser una matriz de ID de categoría. No es fácil de conseguir, especialmente si todavía no tienes publicaciones asociadas a las categorías. La solución en la asignación de categoría era la siguiente: $ sCategory = 'Test'; $ asPost ['post_category'] = array ($ wpdb-> get_var ("SELECT term_id FROM $ wpdb-> terms WHERE name = '$ sCategory'", 0,0)); – Volomike

13

Su pregunta le pregunta cómo insertar una nueva publicación en WordPress usando SQL. Si realmente quisiera hacer eso, echando un vistazo a las tablas de la base de datos "wp" y hacer un INSERT estándar, esto no sería difícil.

pero me gustaría fuertemente recomiendan en contra de hacer esto - incluso si desea crear un tablero de instrumentos de administración separada fuera del WP-proporcionada uno normal, se debe utilizar el core functions/API que proporcionan. Por ejemplo, la función wp_insert_post es lo que desea usar.

Creo que puede usar/cargar estas funciones incluyendo /wp-load.php.

+2

Soy algo nuevo en Wordpress y me pregunto por qué no recomendarás usar una inserción SQL básica. – ssergei

+1

+1 para vincular a la función wp_insert_post y los detalles del archivo para incluir scripts independientes –

+1

@ssergei porque Wordpress le proporciona una API. – shankshera

6

Empecé exportando la tabla "wp_post" solo para ver la estructura, luego copié la primera sección y escribí el segundo;

1: Comienza con una variable que se puede utilizar para su instrucción de inserción ($ sql)

$sql = "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 "; 

2: Tomé el contenido que quería insertar, de otra mesa - pero sólo puede establecer el las variables, ya sea dentro o fuera de la declaración que acaba de establecer la variable a lo que deseas -

$sql .= "(' ','".$post_author."',"."'".$post_date."',"."'".$post_date_gmt."',"."'".$post_content."',"."'".$post_title."',"."'".$post_excerpt."',"."'".$post_status."',"."'".$comment_status."',"."'".$ping_status."',"."'".$posd_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."'),"; 

Después de eso, utilice su consulta estándar:

$res = mysql_query($sql); if($res): print 'Successful Insert'; else: print 'Unable to update table'; endif; 
+2

No funcionará, porque no se ha asignado ninguna categoría a la publicación y, por lo tanto, no se mostrará correctamente ... –

Cuestiones relacionadas