Tìm hiểu về shortcode trong Wordpress

tim-hieu-ve-shortcode-trong-wordpressBài viết thực hiện dựa trên tài liệu Wordpress ở phiên bản 3.5.1. Shortcode được giới thiệu từ phiên bản 2.5, nó sẽ thực hiện một số chức năng nào đó bằng việc tạo một đoạn mã theo cú pháp trong nội dung bài viết. Ví dụ bạn có thể thấy một số plugin sử dụng như nextGent gallery tạo ra một số shortcode là [ nggallery id=X ],  [ slideshow id=X w=X h=X ]... hay ở phiên bản 3.5.1 Wordpress đã tạo sẵn shortcode [gallery].

Một số hàm thao tác với shortcode:

  • add_shortcode
  • shortcode_atts
  • do_shortcode
  • shortcode_parse_atts
  • remove_shortcode
  • strip_shortcodes

add_shortcode($tag, $func)

Hàm sẽ thêm shortcode để thực hiện một chức năng nào đó, $tag là đoạn shortcode sẽ được đặt trong nội dung bài viết, $func là chức năng sẽ thực hiện khi đoạn sortcode được tìm thấy. 

// Ví dụ nếu bạn có một đoạn shortcode: [footag foo="bar"]
function footag_func( $atts ) {
  return "foo = {$atts[foo]}";
}
add_shortcode('footag', 'footag_func');
//Ví dụ nếu đoạn shortcode được sử dụng như dạng thẻ đóng: [baztag]content[/baztag]
function baztag_func( $atts, $content="" ) {
  return "content = $content";
}
add_shortcode( 'baztag', 'baztag_func' );
//Nếu chức năng được viết trong một lớp
class MyPlugin {
  function baztag_func() {
    return "content = $content";
  }
}
add_shortcode( 'baztag', array( 'MyPlugin', 'baztag_func' ) );

shortcode_atts($pairs, $atts)

Hàm kết hợp giữa những thuộc tính của shortcode và những thuộc tính mặc định khi cần. Ví dụ nếu bạn có shortcode: [bartag foo="koala" bar="bears"]

function bartag_func($atts) {
extract(shortcode_atts(array(
  'foo' => 'no foo',
  'bar' => 'default bar'
), $atts));
return 'bartag: ' . $foo . ' ' . $bar;
}
add_shortcode('bartag', 'bartag_func');

do_shortcode($content)

Hàm sẽ chạy shortcode nếu bạn không muốn lấy trực tiếp từ nội dung bài viết. Ví dụ:

echo do_shortcode('[gallery]');
// sử dụng shortcodes trong widget text
add_filter('widget_text', 'do_shortcode');

shortcode_parse_atts($text)

Với đối số là một chuỗi shortcode hàm sẽ trả về một mảng thuộc tính và giá trị của shortcode. Mục đích chính của hàm dùng để kiểm tra thuộc tính và giá trị của shortcode.

remove_shortcode($tag)

gỡ shortcode bạn đã khai báo bởi hàm add_shortcode()

strip_shortcodes($content)

xóa shortcode khi trả về nội dung bài viết. Ví ụ nếu ở trang trủ bạn không muốn thực hiện shortcode trong nội dung bài viết:

function remove_shortcode_from_index($content) {
  if ( is_home() ) {
    $content = strip_shortcodes( $content );
  }
  return $content;
}
add_filter('the_content', 'remove_shortcode_from_index');

20 mẫu shortcode tiện dụng để bạn tham khảo

Tham khảo: codex.wordpress.org

Tags: Wordpress
  • Chia sẻ
comments powered by Disqus