2009-11-03 7 views

risposta

28

È possibile utilizzare l'oggetto del messaggio:

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

Maggiori informazioni trovato here.

+0

E quali file devo includere? Perché voglio fare un pannello di amministrazione separato per wordpress – Uffo

+6

BTW, se vuoi testarlo, crea un file "test.php" nella radice del tuo blog e usa questa riga prima di questo codice: require ('./ wp- blog-header.php '); – Volomike

+2

La categoria deve essere una matrice di ID di categoria. Non è facile da ottenere, soprattutto se non ci sono ancora post associati a categorie. La correzione sull'assegnazione della categoria era questa: $ sCategory = 'Test'; $ asPost ['post_category'] = array ($ wpdb-> get_var ("SELECT term_id FROM $ wpdb-> termini WHERE name = '$ sCategory'", 0,0)); – Volomike

13

La domanda chiede come inserire un nuovo post in WordPress utilizzando SQL. Se davvero volessi farlo, dare un'occhiata alle tabelle del database "wp" e fare un INSERT standard - questo non sarebbe difficile.

ma mi piacerebbe fortemente consiglia contro questo modo - anche se si desidera creare un dashboard di amministrazione separato al di fuori del normale WP-fornito uno, è necessario utilizzare il core functions/API che essi forniscono. Ad esempio, la funzione wp_insert_post è ciò che si desidera utilizzare.

Credo che si possa usare/caricare queste funzioni includendo /wp-load.php.

+2

Sono un po 'nuovo a Wordpress e mi chiedo perché non ti consiglia di utilizzare un inserto SQL di base? – ssergei

+1

+1 per il collegamento alla funzione wp_insert_post e i dettagli del file da includere per gli script autonomi –

+1

@ssergei perché Wordpress fornisce un'API. – shankshera

6

Ho iniziato esportando la tabella "wp_post" solo per vedere la struttura, quindi ho copiato la prima sezione e scritto la seccond;

1: Iniziare con una variabile è possibile utilizzare per la vostra istruzione di inserimento ($ 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: ho preso il contenuto che ho voluto inserire, da un altro tavolo - ma si può solo impostare il variabili sia all'interno che all'esterno della vostra dichiarazione appena impostare la variabile su ciò che si desidera -

$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."'),"; 

Dopo di che, utilizzare il query standard:

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

Non funzionerà, perché nessuna categoria è stata assegnata al post e quindi non verrà visualizzata correttamente ... –

Problemi correlati