Bật Shortcode cho Excerpt và Text Widget trong WordPress

1. Tìm hiểu khái niệm shortcode

Nếu bạn đã từng làm việc với WordPress thì có lẽ bạn không lạ gì với khái niệm shortcode. Như tên gọi, shortcode đơn giản chỉ là các đoạn code ngắn để chèn vào nội dung bài viết cho tiện, khi thực thi, nó sẽ gọi các đoạn code dài hơn, phức tạp hơn được lưu trong các hàm tương ứng. Shortcode cho phép bạn linh động và dễ dàng chèn mọi nội dung phức tạp vào trang web.

Ví dụ bạn thấy trên trang web của tôi thường xuất hiện cụm từ MyLớp.edu.vn, và để cụm từ này được nhất quán trên toàn bộ trang web, cũng như dễ dàng trong quá trình biên soạn bài viết, tôi đã dùng shortcode:

[my_site][/my_site]

Tại vị trí chèn shortcode my_site, lúc thực thi thực sự nó sẽ chèn đoạn code sau:

<a href="https://mylop.xyz" title="Lớp học của tôi, Tình yêu của tôi - MyLớp is MyLove" class="my_site">
	<span>MyLớp.edu.vn</span>
</a>

Đấy là một ví dụ hết sức đơn giản để bạn hiểu về shortcode.

2. Làm việc với shortcode

Để làm việc với shortcode trong WordPress cũng khá đơn giản, nếu bạn đã thành thạo, vui lòng bỏ qua bước này. Ở một bài viết khác MyLớp.edu.vn sẽ cùng bạn tìm hiểu sâu hơn về kỹ thuật này, còn bây giờ, chúng ta hãy thử tạo một shortcode đơn giản nhé. Đó chính là shortcode my_site vừa được đề cập tới ở phía trên. Các đoạn code này bạn chèn vào file functions.php trong thư mục theme của bạn.

PHP Code: functions.php
//[my_site] - Tên shortcode lúc chèn vào bài viết
function my_site_func($args, $content) {
	return '<a href="' . site_url() . '" title="Lớp học của tôi, Tình yêu của tôi - MyLớp is MyLove" class="my_site"><span>MyLớp.edu.vn</span></a>';
}
add_shortcode( 'my_site', 'my_site_func' );

Để tìm hiểu kỹ hơn về shortcode trong WordPress, bạn có thể xem thêm tại WordPress Codex.

3. Bật shortcode cho Excerpt hoặc Text Widget

Shortcode mặc định được bật để có thể chèn vào trong nội dung bài viết, nhưng lại không được bật khi bạn muốn chèn vào Excerpt hoặc Text Widget. Khi mới phát triển trang MyLớp.edu.vn, tôi đã gặp phải vấn đề là shortcode không hoạt động trong Excerpt. Để bật nó, bạn phải thêm một bộ lọc cho hàm the_excerpt bằng cách chèn đoạn code sau vào file functions.php trong thư mục theme của bạn:

PHP Code: functions.php
add_filter('the_excerpt', 'do_shortcode');

Cũng khá đơn giản phải không nào. Tương tự, để bật shortcode cho Text Widget, bạn chèn vào đoạn code sau:

PHP Code: functions.php
add_filter('widget_text', 'do_shortcode');

Lưu ý: Hãy chắc chắn rằng trong theme của bạn có sử dụng hàm the_excerpt, nếu không shortcode sẽ không hoạt động!

Nếu bạn không phải làm gì như hướng dẫn ở trên mà shortcode vẫn làm việc trong Excerpt hoặc Text Widget thì xin chúc mừng, bạn không phải quan tâm tới bài viết này, trong theme bạn tải về họ đã chèn sẵn các đoạn code trên cho bạn!

Một số từ khóa để tìm kiếm:

– shortcode excerpt wordpress
– shortcode wordpress
– bật shortcode cho excerpt
– thêm shortcode cho excerpt

Cheers,

The following two tabs change content below.
Tôi là kỹ sư Cơ khí, kỹ sư CNTT trường ĐH Bách Khoa Hà Nội. Tôi hoạt động trong lĩnh vực CNTT, bao gồm Software Development, Web Design, Web Development, Interactive Multimedia and Mobile App, Mobile Game Development. Tôi rất yêu công nghệ và tôi lập ra trang web này để chia sẻ kiến thức về công nghệ với mọi người.

2 thoughts on “Bật Shortcode cho Excerpt và Text Widget trong WordPress

  1. Em chào anh.
    Cảm ơn anh vì bài viết này. Nhưng anh cho em hỏi là : làm sao để hiển thị được link trong excerpt như của anh được không?
    Mong nhận được sự hỗ trợ của anh. Trân trọng!

    • Code đây bạn:

      1. Trong functions.php, bạn tạo một shortcode có tên nào đó, như vd này:

      //[my_site] - Tên shortcode lúc chèn vào bài viết
      function my_site_func($args, $content) {
      	return '<a href="' . site_url() . '" title="Lớp học của tôi, Tình yêu của tôi - MyLớp is MyLove" class="my_site" rel="nofollow ugc"><span>MyLớp.edu.vn</span></a>';
      }
      add_shortcode( 'my_site', 'my_site_func' );

      2. Bật shortcode cho Excerpt (cũng ở trong file functions.php):
      add_filter(‘the_excerpt’, ‘do_shortcode’);

      3. Lúc tạo bài viết, mục excerpt, bạn chỉ cần chèn shortcode là xong, vd bạn chỉ cần chèn [my_site] như trong VD trên

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*
Website