Hướng dẫn cơ bản về các thẻ có điều kiện của WordPress

Thẻ có điều kiện WordPress là một tính năng tuyệt vời của WordPress cho phép bạn kiểm soát nội dung nào được hiển thị trên một trang. Có các thẻ có điều kiện cho các khu vực khác nhau của trang web của bạn như trang chủ, bài đăng blog và trang của bạn. Điều này cho phép bạn thay đổi những gì được hiển thị xung quanh trang web của bạn. Ví dụ: bạn có thể thay đổi logo trang web của mình ở các khu vực khác nhau trên trang web của bạn.


Trong hướng dẫn này, tôi sẽ giải thích những thẻ có điều kiện nào có sẵn cho bạn và chỉ cho bạn cách sử dụng chúng trong các chủ đề và plugin.

Cách các thẻ có điều kiện của WordPress hoạt động

Thẻ điều kiện là một kiểu dữ liệu boolean chỉ có thể trả về true hoặc false. Thẻ is_home (), ví dụ, đề cập đến chỉ mục blog. Chúng tôi có thể sử dụng thẻ này để hiển thị một thông báo cho khách truy cập blog của chúng tôi. Thông báo này sẽ không được hiển thị ở nơi khác.

Mã này là đơn giản. Tất cả những gì chúng tôi đang làm dưới đây là kiểm tra xem trang đang hiển thị có phải là trang chỉ mục blog hay không. Nếu có, chúng tôi sẽ hiển thị thông điệp của chúng tôi.

<?php

if (is_home ()) {

tiếng vang "Chào mừng bạn đến với Blog của chúng tôi!!";

}

?>

Trên đây là một ví dụ cơ bản về những gì có thể đạt được bằng cách sử dụng các thẻ có điều kiện, tuy nhiên về cơ bản đó là tất cả những gì có. Bạn chỉ cần kiểm tra loại trang đang được hiển thị. Tùy thuộc vào kết quả là đúng hay sai, một đoạn mã khác được thực hiện.

Trước khi chúng tôi xem xét thêm các ví dụ về cách sử dụng thẻ điều kiện, trước tiên chúng ta hãy xem các thẻ điều kiện phổ biến mà bạn có thể thấy được sử dụng trong các chủ đề WordPress của bạn.

  • là nhà() – Kiểm tra nếu chỉ mục bài viết blog đang được hiển thị. Đây có thể là hoặc không phải là trang chủ của bạn.
  • is_front_page () – Kiểm tra nếu trang chủ của bạn đang được hiển thị. Điều này hoạt động cho dù cài đặt trang trước của bạn được thiết lập để hiển thị các bài đăng trên blog (tức là chỉ mục blog) hoặc một trang tĩnh.
  • is_single () – Kiểm tra xem liệu có bất kỳ loại bài đăng nào đang được hiển thị (không bao gồm tệp đính kèm).
  • is_attachment () – Kiểm tra nếu một tệp đính kèm được hiển thị.
  • is_page () – Kiểm tra nếu một trang đang được hiển thị.
  • is_singular () – Kiểm tra xem một bài đăng, tệp đính kèm hoặc trang đang được hiển thị. True được trả về nếu một trong những điều kiện đó được đáp ứng.
  • is_carget () – Kiểm tra xem một trang lưu trữ danh mục đang được hiển thị.
  • is_search () – Kiểm tra nếu một trang kết quả tìm kiếm đang được hiển thị.
  • is_tag () – Kiểm tra xem một kho lưu trữ thẻ đang được hiển thị.
  • is_ Tác giả () – Kiểm tra nếu một trang lưu trữ tác giả đang được hiển thị.
  • is_archive () – Kiểm tra nếu bất kỳ loại trang lưu trữ đang được hiển thị bao gồm lưu trữ thể loại, thẻ, ngày và tác giả.
  • is_sticky () – Kiểm tra nếu một bài viết đã được xác định là dính.
  • is_multi_ Tác giả () – Kiểm tra nếu có nhiều hơn một tác giả đã đăng bài viết trên trang web. True được trả lại nếu hai hoặc nhiều người đã đăng bài viết. Nếu chỉ có một tác giả đã đăng bài viết, hoặc nếu không có bài viết nào được xuất bản, sai được trả lại.

Có sáu thẻ điều kiện dựa trên thời gian mà bạn cũng sẽ thấy hữu ích. Các thẻ này đề cập đến các trang lưu trữ ngày. Ví dụ: URL http://www.yourwebsite.com/2013/12/ là trang lưu trữ dựa trên tháng.

Nếu bất kỳ thẻ điều kiện nào sau đây trả về true, is_archive () cũng sẽ đúng.

  • is_date () – Kiểm tra nếu nó là một trang lưu trữ dựa trên ngày.
  • is_year () – Kiểm tra nếu nó là một trang lưu trữ dựa trên năm.
  • is_month () – Kiểm tra nếu nó là một trang lưu trữ dựa trên tháng.
  • ngày này() – Kiểm tra nếu nó là một trang lưu trữ dựa trên ngày.
  • is_time () – Kiểm tra nếu nó là một trang lưu trữ dựa trên thời gian.
  • is_new_day () – Kiểm tra nếu hôm nay là một ngày mới. Nếu bài viết hiện tại được xuất bản vào một ngày khác với bài đăng trước đó đã được xuất bản, nó sẽ trở lại đúng. Sai sẽ được trả lại nếu cả hai bài viết được xuất bản trong cùng một ngày.

Bạn sẽ bắt gặp các thẻ có điều kiện như is_home () và is_single () thường xuyên, tuy nhiên bạn không cần phải nhớ tất cả các thẻ có điều kiện này. Hầu hết người dùng WordPress tham khảo codex WordPress cho thẻ có điều kiện phù hợp khi họ cần thiết lập chức năng có điều kiện.

Ví dụ về thẻ có điều kiện

Nhiều thẻ điều kiện cho phép các tham số được truyền vào hàm. Điều này cho phép bạn kiểm soát nhiều hơn những điều kiện phải được đáp ứng trước khi một cái gì đó được hành động. is_page () là một ví dụ tốt về điều này. Thẻ cho phép bạn kiểm tra xem trang đang được hiển thị có phải là trang không. is_page () sẽ trả về giá trị true nếu bất kỳ trang nào được hiển thị, tuy nhiên bạn cần chỉ định tham số $ page nếu bạn muốn cụ thể hơn. Tham số $ page có thể là ID trang, tiêu đề trang hoặc sên trang.

Hãy để chúng tôi xem xét một trang web thông thường có một trang về và bạn muốn tùy chỉnh trang về khác với tất cả các trang khác. Ví dụ: bạn có thể hiển thị ảnh của công ty bạn ở đầu thanh bên hoặc bạn có thể hiển thị thông tin bổ sung ở cuối trang giới thiệu.

Để làm điều này, bạn cần xác định tham số $ page. Nếu ID trang là 10, bạn có thể mở câu lệnh điều kiện của mình bằng một cái gì đó như thế này:

if (is_page (10)) {

Một trang cụ thể cũng có thể được chỉ định bằng cách chuyển tiêu đề trang cho chức năng.

if (is_page (‘Giới thiệu’)) {

Sên trang cũng có thể được sử dụng. Như bạn có thể nhớ lại, sên trang là mã định danh duy nhất có tên ở cuối URL. Nếu URL về trang của bạn là www.yourwebsite.com/about-our-company/, thì trang sên sẽ là về công ty của chúng tôi.

if (is_page (‘about-our-company’)) {

Một số thẻ có điều kiện, chẳng hạn như is_page (), cũng có thể truyền tham số trong một mảng. Câu lệnh điều kiện sau đây sẽ trả về giá trị true nếu một trong hai điều kiện là true.

if (is_page (mảng (10, ‘Giới thiệu’, ‘about-our-company’))) {

Các nhà phát triển thường đặt nhiều hơn một điều kiện khi sử dụng các thẻ có điều kiện. Chúng ta hãy quay trở lại với nhiệm vụ đơn giản là hiển thị một thông điệp chào mừng đến khách truy cập blog. Đây là điều mà một trang web công ty có thể muốn thêm vào khu vực blog của họ nhưng không phải là các khu vực khác trên trang web của họ (ví dụ: trang chủ, trang liên hệ, về trang, v.v.).

Họ có thể làm điều này bằng cách sử dụng các thẻ điều kiện is_home () và is_single (); đại diện cho chỉ mục blog và bài viết tương ứng. Để hiển thị một thông báo trong cả hai lĩnh vực, bạn cần sử dụng toán tử OR logic | |. Điều này được minh họa trong mã dưới đây. Câu lệnh if ban đầu kiểm tra xem trang là chỉ mục blog hay một bài đăng. Nếu một trong hai là đúng, thông báo được hiển thị.

<?php

if (is_home () | | is_single ()) {

tiếng vang "Chào mừng bạn đến với Blog của chúng tôi!!";

}

?>

Một toán tử logic khác rất hữu ích là toán tử AND &&. Điều này được sử dụng khi bạn muốn hai hoặc nhiều điều kiện là đúng trước khi một cái gì đó được hành động. Câu lệnh if sau kiểm tra xem một trang có phải là trang lưu trữ và được phân loại theo danh mục tin tức hay không. Trong các trang chuyên mục tin tức, thông báo chào mừng sẽ được hiển thị. Không có gì sẽ được hiển thị trong các danh mục khác.

<?php

if (is_archive () && is_carget (‘Tin tức’)) {

tiếng vang "Chào mừng đến với Lưu trữ Tin tức";

}

?>

Toán tử AND và OR có thể được kết hợp. Ví dụ dưới đây được lấy từ mẫu Hàm.php của chủ đề mặc định WordPress Twenty Thirteen. Chức năng được sử dụng để hiển thị tiêu đề trang trong trình duyệt, tuy nhiên chỉ một phần của chức năng được hiển thị bên dưới.

Câu lệnh if trả về giá trị là true nếu có mô tả trang và người dùng đang xem chỉ mục blog hoặc trang chủ. Mô tả trang web có thể được nhập thông qua trường tagline trong khu vực cài đặt chung của bạn. Nếu bạn hoàn thành trường này, trên chỉ mục blog và trang chủ của bạn, thanh tiêu đề sẽ hiển thị Tiêu đề Trang web | Mô tả trang web Cảnh sát (lưu ý: dấu phân cách được hiển thị bằng chuỗi $ sep trong mã bên dưới). Nếu không, thanh tiêu đề sẽ hiển thị Tiêu đề Trang web.

Như bạn có thể thấy, is_home và _is_front_page được xem dưới dạng một thực thể duy nhất do toán tử OR. Đây là lý do tại sao chúng được bọc bên trong ngoặc.

if ($ site_descrip && (is_home () || is_front_page ()))
$ tiêu đề = "$ title $ sep $ site_description";

Một toán tử logic PHP khác mà bạn có thể sử dụng là toán tử không! Điều này là thực tế hơn để sử dụng trong nhiều trường hợp. Ví dụ: giả sử bạn muốn hiển thị một bức ảnh trên tất cả các trang của bạn ngoại trừ tài liệu lưu trữ của bạn. Không cần thiết lập một tuyên bố có điều kiện dài mà hỏi Đây có phải là trang chủ không, đây có phải là một bài viết duy nhất không Nó thực tế hơn khi chỉ đơn giản là yêu cầu Đây có phải là một trang lưu trữ không?.

Để làm điều này, chỉ cần thêm một dấu chấm than trước thẻ điều kiện. Mã dưới đây cho thấy điều này đơn giản như thế nào trong thực tế. Nó sẽ hiển thị một hình ảnh trên mỗi trang của trang web của bạn ngoại trừ các trang lưu trữ.

<?php

if (! is_archive ()) { ?>

<?php

}

?>

Cho đến bây giờ, chúng tôi đã xem xét các ví dụ cơ bản về các thẻ điều kiện đang được sử dụng trong đó một cái gì đó được hành động hoặc nó không được xử lý (nghĩa là nếu A là đúng, hãy làm B). Trong thực tế, thường có một hành động khác để làm nếu một điều kiện không được đáp ứng. Ngoài ra, có thể có một số điều kiện có thể được đáp ứng, với một phản ứng khác nhau cho mỗi điều kiện.

Thay vì viết nhiều câu lệnh riêng lẻ cho việc này, việc sử dụng các câu lệnh khác và khác là điều thực tế. Điều này cho phép bạn kiểm soát mức độ cao hơn đối với những gì được hiển thị trên trang web của bạn.

Chúng ta có thể chỉ ra điều này bằng một ví dụ. Hãy để chúng tôi nói rằng bạn muốn hiển thị một logo khác trên trang web của bạn trong các khu vực khác nhau của trang web của bạn. Bạn sẽ làm điều này như thế nào? Câu trả lời rất đơn giản: Chúng tôi sử dụng các câu lệnh khác và otherif. Mã dưới đây cho thấy làm thế nào điều này có thể đạt được.

<?php

if (is_home () || is_front_page ()) { ?>

<?php

} otherif (is_carget ()) { ?>

<?php

} otherif (is_single ()) { ?>

<?php

} otherif (is_page ()) { ?>

<?php

}

khác { ?>

<?php

}

?>

Tùy thuộc vào khu vực của trang web mà khách truy cập đang xem, một trong năm logo sẽ được hiển thị bằng mã ở trên. Đây là một ví dụ cơ bản minh họa cách dễ dàng sử dụng các câu lệnh khác và khác để kiểm soát nhiều khu vực khác nhau trên trang web của bạn.

Các câu lệnh khác cũng được sử dụng trong các phần khác của WordPress. Hầu hết các mẫu hàm.php sử dụng chúng và nhiều chủ đề WordPress sử dụng chúng để thay đổi cách hiển thị tiêu đề trang web của họ trong trình duyệt.

Thêm thẻ điều kiện

Có một số thẻ điều kiện bổ sung có sẵn. Nhiều trong số này được các nhà phát triển sử dụng trong các chủ đề và plugin.

Dưới đây là danh sách một số thẻ điều kiện khác có sẵn cho bạn.

  • is_tax () – Kiểm tra xem một trang lưu trữ phân loại tùy chỉnh được hiển thị.
  • has_term () – Kiểm tra xem bài đăng hiện tại có một trong các điều khoản được chỉ định không.
  • taxonomy_exists () – Kiểm tra nếu tên phân loại tồn tại.
  • post_type_exists () – Kiểm tra nếu một loại bài tồn tại.
  • is_post_type_hierarchical ($ post_type) – Kiểm tra xem loại bài đăng có phân cấp không.
  • is_post_type_archive () – Kiểm tra xem trang lưu trữ của một loại bài đăng cụ thể đang được hiển thị.
  • is_comments_popup () – Kiểm tra xem cửa sổ bật lên bình luận có mở không.
  • bình luận_open () – Kiểm tra xem các bình luận có được phép cho bài viết hoặc trang hiện tại không.
  • pings_open () – Kiểm tra nếu ping được phép cho bài viết hoặc trang hiện tại.
  • is_feed () – Kiểm tra xem truy vấn hiện tại có cho nguồn cấp dữ liệu không.
  • là_404 () – Kiểm tra xem lỗi 404 có được hiển thị không.
  • is_paged () – Kiểm tra xem trang bạn đang xem có phải là trang được phân trang không phải là trang một. Bài viết và trang được phân trang khi bạn sử dụng quicktag trang tiếp theo trong nội dung của mình để phân chia các bài đăng lớn.
  • is_trackback () – Kiểm tra xem trackback có đang được sử dụng không.
  • is_admin () – Kiểm tra xem người dùng có đăng nhập vào khu vực quản trị viên hay không. Nó không được sử dụng để kiểm tra xem người dùng có đặc quyền của quản trị viên hay không, chỉ khi họ đăng nhập vào bảng điều khiển WordPress.
  • is_page_template () – Kiểm tra xem trang đang xem có đang sử dụng mẫu trang không. Một mẫu trang cụ thể có thể được xác định, nếu cần thiết.
  • is_preview () – Kiểm tra xem một bài đăng blog đang được xem trong chế độ dự thảo.
  • has_excerpt () – Kiểm tra xem bài hiện tại có đoạn trích không. Bài viết cụ thể có thể được xác định.
  • has_nav_menu () – Kiểm tra xem một vị trí menu có một menu được chỉ định. Điều này được sử dụng bởi các nhà phát triển chủ đề để hiển thị một cái gì đó trong trường hợp người dùng chưa thêm menu.
  • trong vòng() – Kiểm tra xem người gọi có còn trong vòng lặp WordPress không.
  • is_active_sidebar (chỉ mục $) – Kiểm tra nếu một thanh bên nhất định đang được sử dụng.
  • is_multisite () – Kiểm tra nếu multisite được hỗ trợ.
  • is_main_site () – Kiểm tra xem nhiều trang có phải là trang chính trong mạng không.
  • is_super_admin () – Kiểm tra xem người dùng có phải là siêu quản trị viên trong mạng không.
  • is_plugin_active ($ plugin) – Kiểm tra xem một plugin có được kích hoạt không.
  • is_child_theme () – Kiểm tra nếu một chủ đề con đang được sử dụng.
  • current_theme_supports (tính năng $) – Kiểm tra xem một chủ đề có hỗ trợ một tính năng cụ thể như định dạng bài đăng hoặc hình ảnh nổi bật không.

Ngoài ra kiểm tra: Làm thế nào để loại bỏ phân loại mặc định.

Thẻ có điều kiện là một khái niệm quan trọng của WordPress. Do mức độ hữu ích của chúng, có rất ít chủ đề WordPress được thiết kế mà không có chúng. Khi bạn hiểu các câu lệnh khác, các câu lệnh khác và các toán tử logic như AND, OR và Not; bạn sẽ có thể giải quyết bất kỳ chức năng có điều kiện.

Tôi hy vọng hướng dẫn này đã giúp bạn tìm hiểu cách sử dụng các thẻ có điều kiện WordPress trong các chủ đề của bạn.

Nếu bạn thích bài viết này, thì hãy tham gia ThemeLab trên Twitter.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map