Advertisement
  1. Web Design
  2. HTML/CSS
  3. HTML

Tìm hiểu về các tag điều kiện trong WordPress: từ 27 đến 39

Scroll to top
Read Time: 11 min
This post is part of a series called A Walkthrough on Conditional Tags in WordPress.
A Walkthrough on Conditional Tags in WordPress: 14 to 26
A Walkthrough on Conditional Tags in WordPress: 40 to 52

() translation by (you can also view the original English article)

Trong loạt bài viết này, chúng ta sẽ tìm hiểu về một trong những chức năng cơ bản của WordPress: đó là các Tag điều kiện. Trong phần bốn này, chúng ta sẽ tiếp tục giới thiệu và tìm hiều về các tag điều kiện. Hãy đảm bảo là bạn đã đọc qua những phần trước nếu bạn vẫn chưa đọc.

Nào hãy bắt đầu!

27. Kiểm tra xem khi nào Trang là một "Lưu trữ theo tháng": is_month()

Trong WordPress, kiểu lưu trữ dựa trên ngày tháng thường được sử dụng là các lưu trữ hàng tháng. Khi bạn cần xác định khi nào code của bạn đang chạy trong một trang lưu trữ hàng tháng, thì Tag điều kiện is_month() sẽ giúp bạn.

Các tham số đầu vào

Tag điều kiện này không nhận bất cứ tham số nào.

28. Kiểm tra các chức năng của Theme đang dùng: current_theme_supports()

Khi phát triển plugin, có thể bạn cần kiểm tra theme đang được sử dụng hỗ trợ thumbnails, post-formats, custom-headers hay là widgets. Với sự trợ giúp của current_theme_supports(), bạn có thể kiểm tra theme đang sử dụng có hỗ trợ chức năng mà bạn muốn kiểm tra hay không.

Các tham số đầu vào

Tag điều kiện này chỉ có duy nhất một tham số:

  • $feature (chuỗi, không bắt buộc): Tên của các tính năng. (Mặc định: None)

Tên các tính năng:

  • 'post-thumbnails'
  • 'post-formats'
  • 'custom-header'
  • 'custom-background'
  • 'menus'
  • 'automatic-feed-links'
  • 'editor-style'
  • 'widgets'
  • 'html5'

Ví dụ việc sử dụng current_theme_supports()

Giả sử, bạn đang phát triển một plugin đặc biệt cho các theme WordPress với tính năng "custom-backgrounds". Plugin của bạn sẽ vô dụng đối với những theme mà không hỗ trợ custom-backgrounds, vì vậy bạn cần hiện thị một thông báo lỗi trong bản điều khiển của người quản trị để thông báo cho người dùng biết. Sau đây là những gì bạn làm:

1
<?php
2
3
add_action( 'admin_notices', 'custom_bg_feature_warning' );
4
5
function custom_bg_feature_warning() {
6
7
    if ( ! current_theme_supports( 'custom-background' ) ) {
8
    
9
    echo '<div class="error">

10
              <p>' . __( 'This plugin requires a theme with the "custom backgrounds" feature enabled.', 'translation-domain' ) . '</p>

11
          </div>';
12
    
13
    }
14
15
}
16
17
?>

29. Kiểm tra một Plugin cụ thể có được kích hoạt hay chưa: is_plugin_active()

Chỉ hoạt động trong bảng điều khiển của người quản trị, Tag điều kiện is_plugin_active() giúp code của bạn biết một plugin nào đó có được kích hoạt hay chưa. Tag điều kiện này có thể hữu dụng nếu bạn viết "addon plugins" cho những plugin phổ biến (như WooCommerce chẳng hạn) hoạt là những framework được cài đặt giống như là một plugin (ví dụ như Redux Framework).

Các tham số đầu vào

Tag điều kiện này chỉ có duy nhất một tham số:

  • $plugin (chuỗi, bắt buộc): Tên của plugin hoặc tên của thư mục con. (Mặc định: None)

30. Kiểm tra khi nào URL là một tập tin đính kèm nội bộ: is_local_attachment()

Những tập tin đính kèm trong WordPress thật sự hữu ích khi được sử dụng một cách hợp lý, nhưng làm thế nào bạn biết được khi nào một URL thật sự là một tập tin đính kèm? Nếu bạn đang làm việc với các URL, thì Tag điều kiện is_local_attachment() có thể rất hữu ích cho bạn: Nó kiểm tra khi nào một URL cho trước được tải lên WordPress như là một tập tin đính kèm.

Các tham số đầu vào

Tag điều kiện này chỉ có duy nhất một tham số:

  • $url (chuỗi, bắt buộc): URL cần kiểm tra. (Mặc định: None)

Ví dụ việc sử dụng is_local_attachment()

Bở vì tag điều kiện này là khá đơn giản, ví dụ vì thế cũng sẽ đơn giản. Tưởng tượng rằng bạn đang phát triển một plugin và bạn cần kiểm tra xem các URL (được tạo ra bởi hàm khác mà bạn tạo) có là tập tin đính kèm nội bộ hay không:

1
<?php
2
3
$url = some_url_generator_function();
4
5
if ( is_local_attachment( $url ) ) {
6
7
    _e( 'Yep, this is a local attachment!', 'translation-domain' );
8
9
} else {
10
11
    _e( 'Nope, this is not a local attachment.', 'translation-domain' );
12
13
}
14
15
?>

31. Kiểm tra khi nào Page là một trang lưu trữ dựa trên thời gian: is_time()

Bạn biết không, rằng WordPress có các kiểu lưu trữ dựa trên giờ, phút và cả giây nữa? (Để cho thật, tôi không biết rằng bạn có thể tạo những kiểu lưu trữ này trước khi viết loạt bài viết này. Viết tại Tuts+ giống như là một cuộc phiêu lưu học tập vậy!)

Không đơn giản là bạn có thể gõ mywebsite.com/2014/02/22/18/30/ và có được các lưu trữ cho 18:30 ngày 22 tháng Hai, 2014; mà bạn có thể tạo nó với sự trợ giúp của lớp WP_Query. Dù thế nào: Nếu bạn muốn xác định những kiểu lưu trữ dựa trên thời gian, thì bạn có thể sử dụng Tag điều kiện is_time().

Các tham số đầu vào

Tag điều kiện này không nhận bất cứ tham số nào.

32. Kiểm tra khi nào thiết lập hiện tại là RTL: is_rtl()

Trong một vài ngôn ngữ, hầu hết ở các quốc gia Trung Đông, chữ được viết từ phải sang trái thay vì trái sang phải. Là một người phát triển WordPress, bạn phải cân nhắc tất cả những người dùng WordPress, và nếu bạn muốn theme hoặc plugin của bạn làm việc tốt với các trang WordPress có thiết lập RTL, thì bạn nên sử dụng is_rtl() để xác định thiết lập hiện tại là RTL hay không.

Các tham số đầu vào

Tag điều kiện này không nhận bất cứ tham số nào.

Ví dụ việc sử dụng is_rtl()

Hầu hết các nhà thiết kế web tạo các stylesheet riêng cho RTL -  nó là một cách thường thấy. Và nếu như bạn muốn nạp stylesheet cho RTL, thì đây là những gì bạn cần làm:

1
<?php
2
3
add_action( 'wp_enqueue_scripts', 'mytheme_enqueue_styles' );
4
5
function mytheme_enqueue_styles() {
6
7
    if ( is_rtl() ) {
8
    
9
        wp_enqueue_style( 'style-rtl', plugins_url( '/css/style-rtl.css', __FILE__ ) );
10
    
11
    }
12
13
}
14
15
?>

33. Kiểm tra khi nào Trang là một kiểu lưu trữ tuỳ biến: is_tax()

Tag điều kiện is_tag() có thể xác định các tag lưu trữ, nhưng nó không thể làm việc với kiểu tuỳ biến. Để xác định một trang lưu trữ phân loại đang được hiển thị, bạn có thể sử dụng is_tax(). Mặc định, nó bao gồm tất cả các trang lưu trữ phân loại, bao gồm các tag thông thường. Nhưng nó có hai tham số, vì vậy bạn có thể xác định cụ thể các trang lưu trữ phân loại, hoặc thậm chí với điều kiện cụ thể

Các tham số đầu vào

Tag điều kiện này chỉ có duy nhất một tham số:

  • $taxonomy (mảng/chuỗi, không bắt buộc): Tên đại diện cho danh mục phân loại hoặc một phần của tên đại diện. (Mặc định: None)
  • $term (mảng/chuỗi/số nguyên, không bắt buộc): Một hoặc một mảng các định danh, tên, hoặc tên đại diện của thuật ngữ. (Mặc định: None)

34. Kiểm tra khi nào Trang là một Trang đính kèm: is_attachment()

Khi tạo một plugin (hoặc theme), có thể bạn muốn biết khi nào một trang đang được hiện thị có phải là trang đính kèm. Tag điều kiện is_attachment() là cái mà sẽ giúp bạn: Nó trả về TRUE trong một trang có đính kèm và FALSE nếu không phải.

Các tham số đầu vào

Tag điều kiện này không nhận bất kỳ tham số nào.

Ví dụ việc sử dụng is_attachment()

Giả sử bạn muốn hiện thị một liên kết "Trở về bài viết" phía trên đính kèm. Đây là những gì bạn có thể làm:

1
<?php
2
3
if ( is_attachment() ) {
4
5
    // Get attachment's parent.

6
    $parent = get_post_field( 'post_parent', $id );
7
    
8
    // Get permalink of the parent post.

9
    $parent_link = get_permalink( $parent );
10
    
11
    // Echo the link.

12
    echo '<a href="' . $parent_link . '" class="parent-post-link">' . __( 'Back to the post', 'translation-domain' ) . '</a>';
13
14
}
15
16
?>

35. Kiểm tra khi nào một Bài viết có sử dụng Thuật ngữ hay không: term_exists()

Đây là Tag điều kiện thứ hai mà không trả về TRUEFALSE, mà là nhiều thông tin hữu ích: Tag điều kiện term_exists() kiểm tra một thuật ngữ của một sự phân loại có tồn tại hay không, và trả về định danh của thuật ngữ (nếu không có sự phân loại được thiết lập) hoặc một mảng của cặp phân loại và thuật ngữ thay vì chỉ TRUE. Nếu thuật ngữ không tồn tại, nó sẽ trả về 0 hoặc NULL.

Các tham số đầu vào

Tag điều kiện này có ba tham số:

  • $term (chuỗi/số nguyên, bắt buộc): Tên hoặc là định danh của thuật ngữ. (Mặc định: None)
  • $taxonomy (chuỗi, không bắt buộc): Tên của sự phân loại. (Mặc định: Rỗng)
  • $parent (số nguyên, không bắt buộc): Định danh của thuật ngữ cha (để giữ sự tìm kiếm bên dưới nó). (Mặc định: 0)

36. Kiểm tra Bài viết có thuật ngữ nào đó hay không: has_term()

Chúng ta đã thấy rằng chúng ta có thể sử dụng has_tag() nếu chúng ta muốn tìm kiếm một tag trong một bài viết. Nếu chúng ta muốn làm điều tương tự, nhưng với một thuật ngữ của một phân loại tuỳ biến thì sao? Đơn giản: Tag điều kiện has_term() có một tham số thứ ba (thứ hai theo thứ tự) cho phép chúng ta thiết lập một phân loại tuỳ biến.

Điều thú vị: Tag điều kiện has_tag() sử dụng has_term() để trả về TRUE hoặc FALSE! Và như với hàm has_tag(), has_term() cũng cho phép bạn thiết lập nhiều hơn một thuật ngữ (nhưng chỉ trong một phân loại).

Các tham số đầu vào

Tag điều kiện này có ba tham số:

  • $term (mảng/chuỗi/số nguyên, không bắt buộc): Một hoặc một mảng tên, định danh, tên đại diện của thuật ngữ. (Mặc định: Rỗng)
  • $taxonomy (chuỗi, bắt buộc): Tên của phân loại. (Mặc định: Rỗng)
  • $post (đối tượng/số nguyên, không bắt buộc): Bài viết cần kiểm tra. (Mặc định: NULL)

Ví dụ việc sử dụng has_term()

Giả sử bạn chạy một website thương mại và bạn dự định thay đổi nhà cung cấp của bạn đối với các máy tính xách tay Dell, vì vậy bạn muốn thông báo người dùng của bạn biết rằng việc giao hàng sẽ bị trễ cho đến tuần sau. Dưới đây là những gì bạn làm:

1
<?php
2
3
if ( has_term( 'dell', 'laptops' ) ) {
4
5
    echo '<div class="above-product-warning"><strong>' . __( 'Warning', 'translation-domain' ) . ':</strong> ' . __( 'We\'re switching suppliers for Dell laptops, so the shipments will be delayed until next week. Sorry about that!', 'translation-domain' ) . '</div>';
6
    
7
}
8
9
?>

37 Kiểm tra có phải là một Trackback hay không (và chúng ta ở năm 2007): is_trackback()

Xin chào, thời gian đã qua! Bạn muốn tìm hiểu xem một bình luận có phải là một "trackback"? Tag điều kiện is_trackback() sẽ giúp bạn làm điều đó!

Các tham số đầu vào

Tag điều kiện này không nhận bất kỳ tham số nào.

38. Kiểm tra việc có sử dụng "WordPress Multisite" hay không: is_multisite()

Mặc dù không phải là một chức năng phổ biến của WordPress, nhưng Multisite sẽ rất tiện lợi khi cần thiết. Nếu bạn muốn mã nguồn của bạn chạy trong một WordPress thông thường và vận hành khác khi ở trong Multisite, thì Tag điều kiện is_multisite() có thể giúp bạn xác định Multisite có được kích hoạt hay không.

Các tham số đầu vào

Tag điều kiện này không hỗ trợ bất cứ tham số nào.

Ví dụ việc sử dụng is_multisite()

Ví dụ bạn đang phát triển một plugin, và nếu Multisite đã được kích hoạt, thì plugin yêu cầu lớp khác từ plugin của bạn. Đây là những gì bạn làm:

1
<?php
2
3
if ( is_multisite() ) {
4
5
    require_once( 'path/to/multisite-class.php' );
6
7
}
8
9
?>

39. Kiểm tra Trang là một lưu trữ kiểu Bài viết: is_post_type_archive()

Đôi khi, bạn có thể muốn mã nguồn của bạn biết khi nào một trang lưu trữ cho một kiểu bài viết tuỳ biến (hoặc một cặp kiểu bài viết tuỳ biến, hoặc bất kỳ kiểu bài viết tuỳ biến nào) đang được hiện thị. Tag điều kiện is_post_type_archive() thực hiện một cách chính xác điều đó: Nó kiểm tra khi nào một truy vấn là cho một trang lưu trữ hoặc một kiểu bài viết tuỳ biến.

Các tham số đầu vào

Tag điều kiện này chỉ có duy nhất một tham số:

  • $post_types (mảng/chuỗi, không bắt buộc): Tên của kiểu bài viết, hoặc một mảng của tên kiểu bài viết. (Mặc định: None)

Kết thúc

Ở trong phần này, chúng ta đã tìm hiểu một loạt Tag điều kiện trong số 65 Tag điều kiện của WordPress. Trong những phần tiếp theo, chúng ta sẽ tìm hiểu tiếp 26 cái còn lại. Nếu bạn có bất kỳ câu hỏi hoặc ý kiến nào, hãy cho chúng tôi biết ở phía dưới - và nếu bạn thích bài viết này, đừng quên chia sẻ nó!

Hẹn gặp lại bạn trong phần kế tiếp!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.