31 C
Hanoi
Thứ năm, Tháng mười một 21, 2024
spot_img

Cách tạo nhiều bài viết cùng một lúc trong WordPress

Truy cập:

Chia sẻ:

Điều thú vị ở đây là nếu bạn thử google tiêu đề của bài đăng này, bạn sẽ tìm thấy rất nhiều plugin và hầu hết chúng đều đã lỗi thời và không có bài viết hay ví dụ về mã nào.

Trong hướng dẫn này, mình sẽ hướng dẫn bạn quy trình tạo hàng loạt bài đăng, chúng ta sẽ không chỉ tự động tạo bài đăng hoặc trang mà còn cố gắng sử dụng dữ liệu từ trình tạo Lorem Ipsum hoặc Open AI (ChatGPT) .

Cách tạo nhiều bài viết cùng một lúc trong WordPress

Tạo bài viết bằng wp_insert_post() 

Câu hỏi đặt ra ở đây là chúng ta có thực sự nên sử dụng wp_insert_post() cho mục đích đó hay không? Hàm này thực hiện được rất nhiều thứ, vậy có lẽ cách nhanh hơn sẽ là INSERT INTO truy vấn SQL?

Và điều mình nghĩ ở đây là mặc dù wp_insert_post() có thể chậm hơn một truy vấn SQL đơn lẻ, nhưng những điều mà hàm này thực hiện thực sự hữu ích:

  • Bạn sẽ có một mã code đơn giản hơn, đặc biệt là trong trường hợp bạn muốn thêm danh mục và siêu dữ liệu vào các bài viết.
  • Nếu bạn có một số plugin đang chạy trên trang web của bạn, bạn có thể chắc chắn rằng chúng sẽ tương thích với các bài viết mới được tạo ra.

Vậy, hãy bắt đầu với một ví dụ đơn giản:

$number_of_posts = 10;

for( $i = 0; $i < $number_of_posts; $i++ ) {
	
	wp_insert_post(
		array(
			'post_title' => 'Article ' . ( $i + 1 ),
			'post_content' => 'Some content',
			'post_status' => 'draft'
		)
	);
	
}

Khi chạy đoạn code này chúng ta sẽ nhận được kết quả như sau:

Cách tạo nhiều bài viết cùng một lúc trong WordPress-congvietitcom

Một điều quan trọng, xin đừng chạy hàm wp_insert_post() trực tiếp trong functions.php vì nó có thể quá sớm. Nếu bạn đang kiểm tra các tính năng bằng cách này, hãy thêm hook admin_init hoặc một cái gì đó.

Bây giờ, mình sẽ hướng dẫn bạn cách tạo nhiều bài viết cùng một lúc bằng cách sử dụng danh sách các tiêu đề bài viết.

$titles = array(
	'Where to work with laptop in Athens?',
	'Coffee Guide to Istanbul',
	'Snowboarding in Georgia',
	'How to bulk publish posts with WordPress REST API'
);

foreach( $titles as $title ) {
	
	wp_insert_post(
		array(
			'post_title' => $title,
			'post_status' => 'publish' // let's publish posts immediately
		)
	);
	
}

Và sau đó, chúng ta sẽ có một danh sách mới các bài viết đã được xuất bản. Có vẻ khá dễ dàng, phải không?

Cách tạo nhiều bài viết cùng một lúc trong WordPress-congvietitcom

Cuối cùng nhưng không kém phần quan trọng, hãy làm ví dụ của chúng ta trở nên thú vị hơn, để làm điều đó, chúng ta sẽ cố gắng thêm danh mục, thẻ và trường tùy chỉnh vào các bài viết của chúng ta.

$articles = array(
	array(
		'title' => 'Where to work with laptop in Athens?',
		'city' => 'Athens',
	),
	array(
		'title' => 'Coffee Guide to Istanbul',
		'city' => 'Istanbul',
	),
	array(
		'title' => 'Snowboarding in Georgia',
		'city' => 'Gudauri',
	),
	array(
		'title' => 'How to bulk publish posts with WordPress REST API',
	)
);

foreach( $articles as $article ) {
	
	$article_id = wp_insert_post(
		array(
			'post_title' => $article[ 'title' ],
			'post_status' => 'publish'
		)
	);
	
	if( ! empty( $article[ 'city' ] ) ) {
		update_post_meta( $article_id, 'city', $article[ 'city' ] );
		wp_set_post_terms( $article_id, 'travel', 'post_tag' );
	}
	
}

Sử dụng Lorem Ipsum Generator để tạo bài viết WordPress 

Bây giờ, hãy tạo nhiều bài đăng nhưng tạo nội dung bài đăng hoặc đoạn trích với sự trợ giúp của bất kỳ API trình tạo Lorem Ipsum nào. Mình quyết định sử dụng dinoipsum.com này, bạn cũng có thể thử xem.

Mình sẽ sử dụng phiên bản sửa đổi của ví dụ đầu tiên ở đây.

$number_of_dinosaurus = 5;

for( $i = 0; $i < $number_of_dinosaurus; $i++ ) {

	$request = wp_remote_get(
		add_query_arg(
			array(
				'format' => 'text',
				'paragraphs' => 1,
				'words' => 15,
			),
			'https://dinoipsum.com/api/'
		)
	);

	if( 'OK' !== wp_remote_retrieve_response_message( $request ) ) {
		continue;
	}

	wp_insert_post(
		array(
			'post_title' => 'Dinosaur ' . ( $i + 1 ),
			'post_excerpt' => wp_remote_retrieve_body( $request ),
		)
	);

}

Điều duy nhất mình muốn nhấn mạnh rằng có lẽ tốt hơn là chạy một yêu cầu HTTP để Lorem Ipsum tạo và sau đó chia nội dung giữa tất cả các bài đăng mà chúng ta sẽ tạo hàng loạt. Thực tế, đó là những gì mình sẽ làm trong phần tiếp theo về Open AI.

Nhưng hiện tại, đây là kết quả:

Cách tạo nhiều bài viết cùng một lúc trong WordPress-congvietitcom

Tạo bài đăng WordPress bằng Open AI (ChatGPT)

Nhưng điểm mấu chốt là tại sao chúng ta lại sử dụng nội dung lorem ipsum khi chúng ta có thể sử dụng nội dung được tạo ra bằng trí tuệ nhân tạo (AI) ngay bây giờ? Hãy tìm hiểu điều đó.

Trong ví dụ dưới đây, mình sẽ sử dụng Open AI API. Tất nhiên, trước hết bạn phải đăng ký và tạo một khóa API. Hãy yêu cầu Open AI tạo ra 5 tiêu đề về dinosaurs, chúng ta sẽ sử dụng chúng làm tiêu đề bài viết.

$text = 'Write 5 taglines about dinosaurs.';
$password = 'API KEY IS HERE';

$chatgpt_request = wp_remote_post(
	'https://api.openai.com/v1/chat/completions',
	array(
		'timeout' => 30,
		'headers' => array(
			'Content-Type' => 'application/json',
			'Authorization' => 'Bearer ' . $password
		),
		'body' => json_encode(
			array(
				'model' => 'gpt-3.5-turbo',
				'messages' => array(
					array(
						'role' => 'user',
						'content' => $text
					),
				),
				'temperature' => 0.7 // randomeness
			)
		)
	)
);

if( 'OK' === wp_remote_retrieve_response_message( $chatgpt_request ) ) {

	$body = json_decode( wp_remote_retrieve_body( $chatgpt_request ) );

	// by default we have it in a format like
	// 1. "First title"
	// 2. "Second title"
	// 3. ...
	// let's do some formatting
	$titles = array_map(
		function( $choice_text ) {
			if( preg_match( '/"([^"]+)"/', $choice_text, $c ) ) {
				return $c[1];
			}
		},
		explode( "\n", trim( $body->choices[0]->message->content ) )
	);


	foreach( $titles as $title ) {

		wp_insert_post(
			array(
				'post_title' => $title
			)
		);

	}

}
  • Như bạn có thể thấy, không có gì phức tạp ở đây cả, mình chỉ đang sử dụng WordPress HTTP API để thực hiện một yêu cầu đến Open AI API và xử lý kết quả từ đó.
  • Ở dòng 7, mình đặt 'timeout' => 30, điều này rất quan trọng vì hiện nay Open AI API khá chậm, nên chúng ta phải để yêu cầu HTTP của chúng ta đợi kết quả.
  • Mã code ở dòng 31-43 đang chờ đợi để cải thiện, vì mình chỉ thực hiện một số định dạng nhanh để chuyển đổi phản hồi từ Open AI thành một mảng các tiêu đề mà chúng ta có thể sử dụng làm đối số cho wp_insert_post().
Cách tạo nhiều bài viết cùng một lúc trong WordPress-congvietitcom

Kết luận

Trong bài viết này, chúng ta đã tìm hiểu cách tạo nhiều bài viết cùng một lúc trong WordPress một cách dễ dàng và hiệu quả. Chúng ta đã bắt đầu từ cách sử dụng WordPress HTTP API để thực hiện các yêu cầu và xử lý kết quả từ API bên ngoài. Sau đó, chúng ta đã thảo luận về việc thêm danh mục, thẻ, và dữ liệu tùy chỉnh vào các bài viết, tạo ra sự đa dạng và phong phú trong nội dung.

Chúng ta cũng đã thử nghiệm việc tạo nội dung bài viết bằng cách sử dụng Lorem Ipsum và sử dụng trí tuệ nhân tạo thông qua Open AI API để tạo nội dung tùy chỉnh và tiêu đề bài viết. Điều này giúp tạo ra các bài viết độc đáo và hấp dẫn hơn.

Cuối cùng, chúng ta đã nhấn mạnh về việc sử dụng công nghệ trí tuệ nhân tạo để tạo ra nội dung, giúp tiết kiệm thời gian và nâng cao chất lượng bài viết trong quá trình tạo nội dung hàng loạt trên WordPress.

Nếu bạn thích bài viết này, vui lòng đăng ký Kênh YouTube của CongVietBlog để xem các video hướng dẫn về WordPress. Bạn cũng có thể tìm thấy CongVietBlog trên Facebook.

5 1 đánh giá
Đánh giá
Công Việt Blog
Công Việt Bloghttps://congvietit.com
Chào các bạn, mình là Công Việt, mình đến từ kênh Youtube Công Việt Blog. Blog này hiểu đơn giản mình viết những thứ mình học được, áp dụng được và cung cấp những tài nguyên mà mình sử dụng, cũng là nơi để mình lưu trữ tài nguyên. Phần "Thành viên VIP" với gói chỉ 50k để giúp mình duy trì website mà thôi, hi vọng được sự ủng hộ của các bạn.
Theo dõi
Thông báo về
guest
0 Bình luận
cũ nhất
mới nhất lượt bình chọn
Inline Feedbacks
View all comments
banner quang cao hostinger-congvietblog-congvietit
ma giam gia khi mua hosting vps congvietitcom

Bài viết liên quan

JNews – WordPress Newspaper Magazine Blog AMP Theme Version 11.6.5

JNews là giao diện được thiết kế để phục vụ mọi nhu cầu của người sử dụng. Với JNews, bạn có thể khám phá những tính năng tuyệt vời nhất mà một website nên sở hữu. JNews cung cấp hơn 120 giao diện mẫu ở các lĩnh vực khác nhau như blog, tin tức.

Avada Theme | Responsive Multi-Purpose Theme Version 7.11.11

Avada là theme WordPress quảng cáo số 1 trên thị trường. Nói một cách đơn giản, đây là theme WordPress...

Electro Electronics Store WooCommerce Theme Version 3.5.3

Electro Electronics Store WooCommerce Theme của WordPress linh hoạt và linh hoạt, được xây dựng với sự trợ...

WoodMart – Responsive WooCommerce WordPress Theme Version 7.6.0 mới nhất

WoodMart – Responsive WooCommerce WordPress Theme là một theme cao cấp được tối ưu hóa cho việc phát...
0
Hãy cho mình xin 1 bình luận nha bạn yêu !!!x