Khi nào nên sử dụng is_home () so với is_front_page ()?


66

Tôi thấy rằng nó is_front_pagedường như trở lại đúng khi tôi đang xem trang chủ và có một bài viết dính duy nhất được chỉ định ở đó.

Nó cũng trả về đúng khi tôi đã chỉ định một trang là trang đầu tĩnh thông qua Cài đặt> Đọc .

Tại sao tôi muốn sử dụng is_home()?

Câu trả lời:


65

is_front_page()trả về true nếu người dùng ở trên trang hoặc trang của bài đăng được đặt ở trang đầu trên Cài đặt-> Đọc-> Trang chủ của bạn hiển thị

Vì vậy, nếu bạn đặt about uslàm trang đầu thì điều kiện này sẽ chỉ đúng nếu hiển thị trang về chúng tôi .

is_home() trở lại đúng khi trên trang danh sách bài viết, Đây thường là trang hiển thị 10 bài đăng mới nhất.

Nếu các cài đặt trong màn hình trang chủ của bạn được để mặc định thì trang chủ sẽ trả về đúng cho cả hai is_front_page()is_home()

Một ví dụ về việc sử dụng is_home():

  • Bạn đã đặt trang bài viết của mình thành một trang có tên là Tin tức .
  • Một người dùng điều hướng ở đó và trong tiêu đề bạn muốn hiển thị điều hướng bổ sung
  • Bạn có thể sử dụng is_home()để làm điều này.

18
Chính xác. Tôi phân biệt như sau: is_front_page()trả về true khi xem Trang trước của Trang (cho dù hiển thị chỉ mục bài đăng trên blog hoặc trang tĩnh), trong khi is_home()trả về true khi xem Chỉ mục Bài đăng trên Blog (cho dù được hiển thị trên trang trước hoặc trên trang tĩnh).
Chip Bennett

3

Tôi đã phát hiện ra điều đó is_home()is_front_page()không cung cấp những gì được mong đợi cho nhiều trang. Cách giải quyết của tôi bằng cách sử dụng các tính năng tích hợp trong PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Như đã đề cập trong các bình luận, cách tiếp cận này sẽ không hoạt động đối với các phiên bản WP được cài đặt trong thư mục con của web root. Sử dụng theo ý của bạn.


Vui lòng giải thích làm thế nào nó không cung cấp những gì mong đợi.
Christine Cooper

Trên một trang web chính nhiều trang nếu bạn sử dụng bất kỳ hình thức nào is_home()hoặc is_front_page()trên một trang đầu trang tĩnh hoặc blog, các chức năng đều sẽ trả về sai.
Dylan Pierce

1
Tôi vừa thử nghiệm cả hai điều kiện trên một môi trường nhiều trang và cả hai đều trả về đúng khi tôi truy cập các /trang tương ứng .
Christine Cooper

Tôi đang sử dụng hộp VVV wordpress với plugin multisite : github.com/Varying-Vagrant-Vagrant/vvv-multisite có lẽ có gì đó bị định cấu hình sai trên đó? Bất kể chỉ để lại một câu trả lời cho một cách giải quyết nếu có ai đi kèm với một tình huống tương tự.
Dylan Pierce

Mã của bạn gần như hoàn hảo, điều duy nhất là: Điều gì sẽ xảy ra nếu WP được cài đặt trong thư mục con, ví dụ / blog hoặc / wordpress. Hơn cái này sẽ vô dụng.
Remzi Cavdar

1

Bạn muốn sử dụng is_home()khi bạn muốn kiểm tra xem người dùng có đang xem danh sách bài đăng trên blog của bạn không (thường được đặt để hiển thị 10 bài đăng trên mỗi trang). Nếu bạn có một home.phptệp trong chủ đề của mình, nó sẽ được hiển thị khi is_home()điều kiện là đúng.

Những điều sau đây cũng có thể loại bỏ một số nhầm lẫn: khi nào is_front_page()is_home()điều kiện, cả hai đều đúng, mẫu front-page.phpsẽ được sử dụng thay thế home.php.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.