2009-11-03 34 views
16

Có ai biết cách chèn một bài đăng mới vào Wordpress bằng sql không?Chèn một bài đăng trong Wordpress bằng MySql

+0

Tôi đã chỉnh sửa câu hỏi của bạn. Nếu nó không phải là những gì bạn đang yêu cầu xin vui lòng hoàn nguyên nó. –

Trả lời

28

Bạn có thể sử dụng đối tượng cuối:

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

Thông tin thêm tìm thấy here.

+0

Và tôi phải bao gồm những tệp nào? Bởi vì tôi muốn làm một bảng quản trị riêng biệt cho wordpress – Uffo

+6

BTW, nếu bạn muốn kiểm tra điều này, hãy tạo một tệp "test.php" trong thư mục gốc của blog của bạn và sử dụng dòng này trước mã này: yêu cầu ('./ wp- blog-header.php '); – Volomike

+2

Danh mục cần phải là một mảng ID danh mục. Đó không phải là dễ dàng để có được, đặc biệt là nếu bạn không có bài viết liên kết với các loại. Sửa chữa về việc phân loại thể loại là: $ sCategory = 'Test'; $ asPost ['post_category'] = mảng ($ wpdb-> get_var ("SELECT term_id FROM $ wpdb-> terms WHERE name = '$ sCategory'", 0,0)); – Volomike

13

Câu hỏi của bạn hỏi cách chèn một bài đăng mới vào WordPress bằng cách sử dụng SQL. Nếu bạn thực sự muốn làm điều đó, hãy xem các bảng cơ sở dữ liệu "wp" và thực hiện một tiêu chuẩn INSERT - điều này sẽ không khó.

Nhưng tôi muốn mạnh mẽ khuyên bạn nên làm điều này - ngay cả khi bạn muốn tạo trang tổng quan quản trị riêng bên ngoài trang tổng quan do WP cung cấp, bạn nên sử dụng core functions/API mà họ cung cấp. Ví dụ: chức năng wp_insert_post là những gì bạn muốn sử dụng.

Tôi tin rằng bạn có thể sử dụng/tải các chức năng này bằng cách bao gồm /wp-load.php.

+2

Tôi hơi mới với Wordpress và tôi tự hỏi tại sao bạn đề nghị chống lại bằng cách sử dụng một chèn SQL cơ bản? – ssergei

+1

+1 cho liên kết đến hàm wp_insert_post và chi tiết của tệp để bao gồm cho các tập lệnh độc lập –

+1

@ssergei vì Wordpress cung cấp cho bạn API. – shankshera

6

Tôi bắt đầu bằng cách xuất bảng "wp_post" chỉ để xem cấu trúc - sau đó sao chép phần đầu tiên và đã viết seccond;

1: Bắt đầu với một biến, bạn có thể sử dụng cho tuyên bố chèn của bạ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: Tôi đã lấy nội dung mà tôi muốn để chèn, từ bảng khác - nhưng bạn có thể chỉ cần đặt các biến hoặc bên trong hoặc ngoài tuyên bố của bạn chỉ cần đặt biến với những gì bạn mong muốn -

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

Sau đó, sử dụng truy vấn chuẩn của bạn:

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

Nó sẽ không hoạt động, vì không có danh mục nào được gán cho bài đăng và do đó nó sẽ không được hiển thị chính xác ... –

Các vấn đề liên quan