2009-11-03 8 views

Antwort

28

können Sie das Objekt Beitrag verwenden:

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

Mehr Informationen here gefunden.

+0

Und welche Dateien muss ich aufnehmen? Weil ich ein separates Admin-Panel für WordPress – Uffo

+6

BTW machen möchte, wenn Sie dies testen möchten, erstellen Sie eine "test.php" -Datei im Stammverzeichnis Ihres Blogs und verwenden Sie diese Zeile vor diesem Code: require ('./ wp- blog-header.php '); – Volomike

+2

Die Kategorie muss ein Array von Kategorie-IDs sein. Das ist nicht leicht zu bekommen, besonders wenn Sie noch keine Beiträge mit Kategorien haben. Das Problem bei der Kategorisierung wurde behoben: $ sCategory = 'Test'; $ asPost ['post_category'] = array ($ wpdb-> get_var ("SELECT term_id FROM $ wpdb-> terms WHERE name = '$ sCategory'", 0,0)); – Volomike

13

Ihre Frage fragt, wie Sie einen neuen Beitrag mit SQL in WordPress einfügen. Wenn Sie das wirklich wollen, einen Blick auf die Datenbanktabellen "wp" werfen und einen Standard-INSERT machen - das wäre nicht schwer.

aber ich würde stark empfehlen dagegen tun - auch wenn Sie eine separate Admin-Dashboard außerhalb des normalen WP-vorausgesetzt, man erstellen möchten, sollten Sie die core functions/API verwenden, die sie bieten. Zum Beispiel ist die wp_insert_post Funktion, was Sie verwenden möchten.

Ich glaube, dass Sie diese Funktionen verwenden/laden können, indem Sie /wp-load.php.

+2

Ich bin etwas neu in Wordpress und ich frage mich, warum Sie gegen die Verwendung einer grundlegenden SQL-Einfügung empfehlen? – ssergei

+1

+1 für den Link zur wp_insert_post-Funktion und die Details der Datei für eigenständige Skripte enthalten –

+1

@ssergei, weil Wordpress bietet Ihnen eine API. – shankshera

6

Ich begann mit dem Export der "wp_post" Tabelle, nur um die Struktur zu sehen - dann kopierte den ersten Abschnitt und schrieb die Sekunde;

1: Beginnen Sie mit einer Variablen, die Sie für Ihre Insert-Anweisung verwenden können ($ 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: Ich habe den Inhalt, die ich, aus einer anderen Tabelle einfügen wollte - aber man kann einfach eingestellt die entweder Variablen innerhalb oder außerhalb Ihrer Anweisung gesetzt nur die Variable auf, was Sie wünschen -

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

Danach verwenden Sie Ihre Standardabfrage:

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

Es wird nicht funktionieren, weil dem Post keine Kategorie zugewiesen wurde und daher nicht korrekt angezeigt wird ... –

Verwandte Themen