Tất tần tật về Shortcode trong WordPress

Shortcode đơn giản là đoạn code ngắn để gọi đoạn code dài ra, chúng ta code ở 1 nơi và đặt tên cho nó sau đó gọi nó ra bằng cái tên vừa đặt đơn giản vậy thôi.

Một điều đáng tiếc là trong giao diện UX BUILDER của Flashsome hoặc tất cả các giao diện kéo thả khác chúng ta không thể viết code PHP ra được nhưng với shortcode thì mọi thứ sẽ trở nên rất đơn giản.

Trong bài viết này mình sẽ chia làm 2 phần, 1 là tạo Shortcode 2 là gọi nó ra như thế nào để các bạn sử dụng ngắn gọn hết mức có thể để các bạn dễ “cám ăn thẳng”.

Tạo Shortcode

Với WordPress nhét đoạn này vòa function.php nhé, chú ý đến add_shortcode( ‘ten_shortcode’, ‘create_shortcode’); đây chính là câu lệnh để bạn tạo 1 shortcode có tên là ten_shortcode và đoạn shortcode này sẽ thực thi function create_shortcode thế thôi.

//Khởi tạo function cho shortcode
function create_shortcode() {
echo "Hello World!";
}
//Tạo shortcode tên là [ten_shortcode] và sẽ thực thi code từ function create_shortcode
add_shortcode( 'ten_shortcode', 'create_shortcode');

Giờ thì cháy thôi nhét bất cứ thứ gì vào function, dưới đây là mình loop một custom post ra nhá còn bạn thích thực thi hàm nào thì vứt vào là xong.

function create_shortcode_recruitment() {
	$recruitment_query = new WP_Query(array(
		'posts_per_page' => 10,
		'post_type'=>'featured_item',
		'orderby' => 'desc'
	));
	ob_start();
	if ( $recruitment_query->have_posts() ) :
		"<ol>";
		while ( $recruitment_query->have_posts() ) :
			$recruitment_query->the_post();
			$mucluong = get_post_meta( get_the_ID(), 'Mức lương', true);
			
			?>

				<li>
				<a href="<?php the_permalink(); ?>"><h5><?php the_title(); ?></h5></a>
				<p><?php echo $mucluong ?></p>
				</li>

		<?php endwhile;
		"</ol>";
	endif;
	$list_post = ob_get_contents(); //Lấy toàn bộ nội dung phía trên bỏ vào biến $list_post để return

	ob_end_clean();

	return $list_post;
}
add_shortcode('recruitment_post', 'create_shortcode_recruitment');

Gọi Shortcode

Việc gọi shortcode lại càng đơn giản với WordPress thì chỉ cần đặt tên shortcode trong cặp dấu ngoặc vuông [] là được.

[name_of_shortcode]

Với php thì sử dụng hàm do_shortcode nhé.

<?php echo do_shortcode('[name_of_shortcode]'); ?>

Hết rồi, chỉ cần một chút thông mình của bạn nữa thì mọi thứ đều xử lý được hết nhé mấy cái linh tinh thì cứ sài cái này đỡ phải plugin vừa nhanh vừa tiện.