Thứ Tư, 28 Tháng Chín 2022
Trang chủBlog - WebsiteWordpressCác hàm WordPress thông dụng nhất trong lập trình WordPress

Các hàm WordPress thông dụng nhất trong lập trình WordPress

Trong mã nguồn của WordPress bao gồm rất nhiều các hàm, khoảng vài ngìn, mỗi hàm có một chức năng và nhiệm vụ khác nhau. Để hiểu và có thể sử dụng hết tất cả, chúng ta cần có nhiều thời gian, dưới đây tổng hợp lại một số trong tất cả các hàm có trong mã nguồn của WordPres được cho là phổ biến nhất.

1. Hàm add_action() và add_filter()

Hai hàm này được sử dụng rất nhiều trong việc lập trình theme hoặc lập trình plugin. Mục đích của hai hàm này là can thiệp vào mã nguồn của WordPress hoặc mã nguồn của plugin/theme nào đó mà không cần sửa code trực tiếp trong mã nguồn.

Hàm add_ action()

  • Cấu trúc:
 add_action( string $hook_name, callable $callback, int $priority, int $accepted_args)

Trong đó, ý nghĩa các thăm số như sau:

  • hook_name’: Tên của hook(the_title, save_post…..).
  • callback’: Hàm sử lý.
  • priority: Độ ưu tiên để chỉ định thứ tự thực thi các hàm liên quan đến một hành động cụ thể.
  • accepted_args’: Số lượng đối số sử dụng trong hàm callback.

Ví dụ sử dụng

Đoạn code dưới đây sẽ có tác dụng kiểm tra và in ra màn hình một comment với id có tồn tại hay không.

function echo_comment_id($comment_id){
    printf('Comment ID %s could not be found' éc_html($comment_id));
}
add_action('commet_id_not_found','echo_comment_id',10,1);

Hàm add_ filter()

  • Cấu trúc:
add_ filter( string $hook_name, callable $callback, int $priority, int $accepted_args)

Trong đó, ý nghĩa các thăm số như sau:

  • hook_name’: Tên của hook(the_title, save_post…..).
  • callback’: Hàm sử lý.
  • priority: Độ ưu tiên để chỉ định thứ tự thực thi các hàm liên quan đến một hành động cụ thể.
  • accepted_args’: Số lượng đối số sử dụng trong hàm callback.

Ví dụ sử dụng

Đoạn code dưới đây có tác dụng thêm ‘tuicocach.com’ sau mỗi tiêu đề bài viết hiển thị.

//Hàm bổ sung chuỗi "tuicocacach.com" vào chuỗi
function add_string_to_title($conten)
{
     return $content." - tuicocach.com"
}

//Đưa hàm add_string_to_title vào hook the_title
add_filter('the_title','add_string_to_title',10,1);

2.Hàm bloginfo() và get_bloginfo()

Hai hàm bloginfo() get_bloginfo() là hàm lấy dữ liệu chung của website WordPress như tên website, đường dẫn website, phiên bản WordPress đang sử dụng,…Khác biệt giữa hàm get_bloginfo() và hàm bloginfo() là hàm get_bloginfo() là hàm get nên nó chỉ hỗ trợ return về một giá trị, còn đối với hàm bloginfo() sẽ in ra luôn giá trị.

Cấu trúc

bloginfo($show)
get_bloginfo( $show )

Trong đó, tham số show là tham số khai báo thành phần cần lấy ra, nó có một số tham số như sau:

  • ‘name’ : Tên của website thiết lập trong Setting -> General.
  • ‘url’ : Giá trị Site Address thiết lập trong Settings -> General.
  • ‘wpurl’ : Giá trị WordPress address trong Settings -> General.
  • ‘description’ : Giá trị của phần Tagline trong Settings -> General.
  • ’email’ : Giá trị của phần Admin Email trong Settings -> General.
  • ‘charset’ : Giá trị charset trong Settings -> Reading.
  • ‘version’ : Phiên bản WordPress đang sử dụng.
  • ‘language’ : Mã ngôn ngữ của website đang sử dụng.
  • ‘stylesheet_url’ : Đường dẫn đến tập tin style.css của theme đang kích hoạt.
  • ‘stylesheet_directory’ : Đường dẫn của thư mục theme đang kích hoạt.
  • ‘pingback_url’ : Đường dẫn trỏ đến tập tin xmlrpc.php trên website.
  • ‘atom_url’ : Đường dẫn của trình cấp Atom trên website.
  • ‘rdf_url’ : Đường dẫn của trình cấp RDF trên website.
  • ‘rss_url’ : Đường dẫn của trình cấp RSS trên website.
  • ‘rss2_url’ : Đường dẫn của trình cấp RSS2 trên website.
  • ‘comments_atom_url’ : Đường dẫn trình cấp Atom của bình luận trên website.
  • ‘comments_rss2_url’ : Đường dẫn trình cấp RSS2 của bình luận trên website.

Ví dụ sử dụng:

Hiển thị tên website qua hàm bloginfo() ta có cấu trúc như sau.

<h1><?php bloginfo(‘name’); ?></h1>

hoặc sử dụng get_bloginfo()

<h1><?php echo get_bloginfo(‘name’); ?></h1>

3.Hàm wp_title()

          Hàm wp_title() dùng để hiển thị Title của trang hiện tại đang xem, wp_title() thường được sử dụng ở trong thẻ header của trang.

Cấu trúc

wp_title( $sep, $display, $seplocation)

Trong đó, ý nghĩa các thăm số như sau:

  • ‘sep’ : là dấu phân cách (ví dụ như -, | …), dấu này dùng để phân cách tiêu đề của bài viết(trang) và tiêu đề website. Ví dụ như “Hướng dẫn cài đặt Blugin trong WordPress đơn giản – Tanchan679.com”.
  • ‘display’ : xác định muốn hiển thị chỉ tiêu đề chỉ chữ (TRUE) hoặc là lấy nguyên giá trị trong dữ liệu ra (FALSE). Mặc định là TRUE.
  • ‘seplocation’: Xác định dấu phân cách ở phía trước(trái) với tiêu đề sử dụng thăm số ‘left’, hay là sau (phải) với tiêu đề sử dụng thăm số là ‘right’.

Ví dụ sử dụng: Sử dụng hàm wp_tittle để hiển thị tiêu đề bài viết.

<title><?php wp_title("&laquo;", true, "right"); ?> <?php bloginfo("name"); ?></title>

Các hàm này có nhiệm vụ là gọi các file header.php, footer.php và sidebar.php vào bất kì file khác trong lập trình theme.

Cấu trúc

get_header($info);
get_footer($info);
get_sidebar($info);

Trong đó, ý nghĩa các thăm số như sau:

  • info : Tên hậu tố để phân biệt giữa các file, có thể có hoặc không.

Ví dụ cách dùng:

Ví dụ bạn có file header.php bạn muốn nối file này vào file index.php. Thì trong file index.php bạn sẽ sử dụng cú pháp:

<?php get_header() ?>

Nhưng trong trường hợp website của bạn có 1 trang a và b nhưng 2 trang lại có 2 header khác nhau, thì bạn bắt buộc phải chia file header.php thành 2 file header-a.php và file header-b.php thì cú pháp để sử dụng sẽ như sau:

<?php
    get_header(a)  //Đối với file a
?>
<?php
    get_header(b)  //Đối với file b
?>

Lưu ý muôn sử dụng được hàm này thì các tên file phải được đặt theo đúng chính tả. là header.php hoặc

5. Các hàm lấy dữ liệu trong Post (Bài viết)

Các hàm này thường được sử dụng trong các vòng lặp truy vấn bài viết như để hiển thị bài viết xem nhiều, mới nhất tại sidebar, bài viết cùng chuyên mục….hay dùng trong file single.php… Có chức năng lấy thông tin của bài viết như: Tiêu đề bài viết, đường dẫn bài viết, ảnh đại diện, nội dung, tác giả, ngày post…

  • the_permalink() – Hiển thị thị đường dẫn của bài viết
  • the_title() – Hiển thị tiêu đề của bài viết
  • the_content() – Hiển thị nội dung chi tiết của bài viết
  • the_excerpt() – Hiển thị nội dung mổ tả cho bài viết
  • the_ID() – Hiển thị id của bài viết
  • the_tags() – Hiển thị các thẻ của bài viết
  • the_date() – Hiển thị ngày đăng bài viết
  • the_category() – Hiển thị các chuyên mục của bài viết.
  • the_author_posts_link() – Hiển thị tác giả của bài viết.

Ví dụ cách dùng:


Để tạo đường dẫn cho bài viết hiện tại ta có cấu trúc như sau:

< a href="<?php echo the_premalink() ?>">Đường dẫn bài viết </a>

Hoặc để hiển thị thời gian đăng bài viết:

<?php echo the_date() ?>

6. Các hàm lấy dữ liệu của category (Chuyên mục)

Các hàm này thường được sử dụng trong các vòng lặp lấy dữ liệu chuyên mục.

  • category_description() – Hiển thị mô tả của chuyên mục
  • tag_description() – Hiển thị mô tả của thẻ (tag).
  • get_queried_object_id() –Hiển thị ID chuyên mục hiện tại
  • wp_dropdown_categories() – Hiển thị danh sách category với dạng dropdown.
  • single_cat_title() – Hiển thị tên chuyên mục trong truy vấn.
  • single_tag_title() – Hiển thị tên thẻ (tag) trong truy vấn.
  • wp_tag_cloud() – Hiển thị mây thẻ.

Về cách dùng các hàm này thì cũng tương tự như các hàm lấy dữ liệu trong post.

7. Các hàm điều kiện

  • comments_open( $args )
    • Kiểm tra chức năng bình luận của post hiện tại có đang được mở hay không.
  • has_tag( $args )
    • Kiểm tra post hiện tại có được đặt Tag hay không.
  • has_term ( $args )
    • Kiểm tra post hiện tại có chứa một term của bất kỳ taxonomy nào hay không. Ví dụ bạn có một category mang tên là ABC thì cái ACB đó chính là term của taxonomy tên Category.
  • in_category( $args )
    • Kiểm tra post hiện tại có nằm trong category nào hay không.
  • is_404()
    • Kiểm tra trang bạn đang truy cập có bị lỗi 404 hay không.
  • is_admin()
    • Kiểm tra bạn có đang truy cập vào trang quản trị của WordPress hay không.
  • is_archive()
    • Kiểm tra xem bạn có đang truy cập vào trang lưu trữ của bất kỳ một taxonomy nào hay không.
  • is_attachment()
    • Kiểm tra xem bạn có đang truy cập vào trang hiển thị tài liệu đính kèm trong post hay không (Media).
  • is_author( $args )
    • Kiểm tra bạn có đang xem trang lưu trữ của một tác giả nào đó hay không.
  • is_child_theme()
    • Kiểm tra nếu theme hiện tại đang sử dụng là child theme hay theme bình thường.
  • is_comments_popup()
    • Kiểm tra trang hiện tại đang truy cập có phải là trang popup của comment hay không.
  • is_date()
    • Kiểm tra trang đang truy cập có phải là trang lưu trữ dạng ngày tháng hay không.
  • is_day()
    • Kiểm tra xem trang bạn đang xem có phải là trang lưu trữ theo ngày hay không.
  • is_feed()
    • Kiểm tra xem đối tượng bạn đang xem có thuộc trang RSS Feed hay không.
  • is_front_page()
    • Kiểm tra xem trang hiện tại bạn đang xem có phải là trang chủ mà đã được thiết lập trong Settings -> Reading hay không.
  • is_home()
    • Kiểm tra xem trang hiện tại của bạn có là trang chủ hay không. Kết quả sẽ trả về là TRUE nếu bạn không thiết lập trang chủ trong Settings -> Reading hoặc bạn thiết lập một trang trở thành Post page trong Settings -> Reading.
  • is_month()
    • Kiểm tra xem trang đang xem có phải là trang lưu trữ theo háng hay không.
  • is_multi_author()
    • Kiểm tra xem website đang truy cập có nhiều hơn 1 tác giả đăng bài hay không.
  • is_multisite()
    • Kiểm tra xem trang hiện tại có phải là WordPress Multisite hay không.
  • is_main_site( $args )
    • Kiểm tra xem trang hiện tại có phải là website chính trong mạng WordPress Multiste hay không.
  • is_page( $args )
    • Kiểm tra trang hiện tại có phải thuộc Page hay không.
  • is_page_template( $args )
    • Kiểm tra page hiện tại có dùng Page Template hay không.
  • is_paged()
    • Kiểm tra xem trang hiện tại có được phân trang hay không. Không áp dụng cho Post và Page.
  • is_preview()
    • Kiểm tra xem trang bạn đang xem có phải là trang xem thử bài viết ở chế độ viết nháp hay không.
  • is_rtl()
    • Kiểm tra ngôn ngữ đang sử dụng cho website có thuộc danh sách các quốc gia sử dụng bố cục đọc từ phải trang trái hay không. Ví dụ như tiếng Ả Rập sẽ đọc từ phải sang trái.
  • is_search()
    • Kiểm tra trang đang xem có phải là trang hiển thị kết quả tìm kiếm hay không.
  • is_single( $args )
    • Kiểm tra xem trang hiện tại có phải là trang hiển thị chi tiết nội dung của bất kỳ post type nào hay không. Chỉ áp dụng cho các post type có tham số Hierarchical là True, tức là giống Post.
  • is_singular( $args )
    • Kiểm tra xem trang hiện tại có phải là trang hiển thị chi tiết nội dung của bất kỳ post type nào hay không, nó giống như is_single() nhưng áp dụng cho toàn bộ loại post type và nó cũng sẽ trả kết quả là TRUE nếu như is_single(), is_page() và is_attachment() trả kết quả về là TRUE.
  • is_sticky( $args )
    • Kiểm tra xem post đang xem có đang được đánh dấu vào nút Sticky hay không.
  • is_super_admin( $args )
    • Kiểm tra thành viên đang truy cập có phải là Super Admin hay không.
  • is_tag( $args )
    • Kiểm tra xem trang hiện tại có phải là trang hiển thị danh sách bài viết của một tag nào đó không.
  • is_tax( $args )
    • Trả về TRUE nếu trang hiện tại là trang hiển thị danh sách bài viết của một taxonomy nào đó.
  • username_exists( $args )
    • Kiểm tra sự tồn tại của một username.
  • is_taxonomy_hierarchical( $args )
    • Kiểm tra một taxonomy nào đó có được bật tính năng hierarchical hay không.
  • is plugin active( $args )
    • Trả về TRUE nếu một plugin nào đó được kích hoạt.
  • in_the_loop()
    • Kiểm tra đối tượng hiện tại có đang nằm trong loop không.
  • is_activate_sidebar( $args )
    • Kiểm tra một sidebar nào đó có đang được sử dụng hay không.
  • is_activate_widget( $args )
    • Kiểm tra một widget nào đó có đang được sử dụng (đưa vào sidebar) không.
  • is_dynamic_sidebar()
    • Kiểm tra sidebar xem nó đã được thêm widget chưa.
  • is_user_logged_in()
    • Kiểm tra người đang xem có phải là thành viên đã đăng nhập hay không.
  • wp_is_mobile()
    • Kiểm tra thiết bị đang truy cập có phải là điện thoại di động hay không.
XEM THÊM
Cấu trúc mã nguồn của một Blugin WordPress cơ bản nhất
Cấu trúc mã nguồn của một theme WordPress như thế nào?
Tìm hiểu Hooks, Action và Filter trong lập trình WordPress
Cấu trúc Database(Cơ sở dữ liệu) mã nguồn WordPress
5 1 Bỏ phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x