Hàm tạo button Like and Dislike cho WordPress

📅 — 👀 61 — 👦

Nếu website của các bạn thường là TUT hoặc Document thì nên có chức năng button Like and Dislike để cho chúng ta biết được bài viết của bạn có giúp cho người đọc giải quyết được vấn đề hay không để ta sửa đổi lại nội dung giúp cho người đọc giải quyết được vấn đề mà họ gặp phải một cách thuận lợi hơn.


Sau đây là một đoạn code nhắn để cho các bạn thêm chức năng này vào website. Code này rất đơn giản, chỉ việc copy vào file function.php là được.

Thêm button vào nội dung bài viết

add_filter('the_content', function(){
	//Kiểm tra nếu trang là bài viết
	if(is_singular('post')) {
		ob_start();
		?>;			
			<ul class="likes">
				<li>
					<a href="<?php echo add_query_arg('post_action', 'like'); ?>;">
						👍 Like (<?php echo kk_get_like_count('likes') ?>;)
					</a>;
				</li>;
				<li>;
					<a href="<?php echo add_query_arg('post_action', 'dislike'); ?>;">;
						👎 Dislike (<?php echo kk_get_like_count('dislikes') ?>;)
					</a>;
				</li>;
			</ul>;			
		<?php

		$output = ob_get_clean();
		return $output . $content;
	}
	else {
		return $content;
	}
});

Lấy số lượt Like và Dislike

function kk_get_like_count($type = 'likes') {
	$current_count = get_post_meta(get_the_id(), $type, true);

	return ($current_count ? $current_count : 0);
}

Xử lý khi nhấn button Like hoặc Dislike

function kk_process_like() {
	$processed_like = false;
	$redirect       = false;

	// Kiểm tra button là Like hoặc Dislike
	if(is_singular('post')) {
		if(isset($_GET['post_action'])) {
			if($_GET['post_action'] == 'like') {
				// Like
				$like_count = get_post_meta(get_the_id(), 'likes', true);

				if($like_count) {
					$like_count = $like_count + 1;
				}else {
					$like_count = 1;
				}

				$processed_like = update_post_meta(get_the_id(), 'likes', $like_count);
			}
			elseif($_GET['post_action'] == 'dislike') {
				// Dislike
				$dislike_count = get_post_meta(get_the_id(), 'dislikes', true);

				if($dislike_count) {
					$dislike_count = $dislike_count + 1;
				}
				else {
					$dislike_count = 1;
				}

				$processed_like = update_post_meta(get_the_id(), 'dislikes', $dislike_count);
			}

			if($processed_like) {
				$redirect = get_the_permalink();
			}
		}
	}

	// Chuyển hướng trang
	if($redirect) {
		wp_redirect($redirect);
		die;
	}
}

Như vậy, chỉ với vài dòng code đơn giản là bạn có thể thêm 01 chức năng khá là pro cho website của bạn. Chúc các bạn thành công !


📁 Tài liệu
🔖