it-swarm-vi.tech

Tại sao is_home () không hoạt động chính xác?

Tôi đặt một bit if(is_home()) trong các hàm của chủ đề của mình và nó dường như không hoạt động. Hàm chứa bit này được gọi trên init vì vậy is_home sẽ hoạt động.

3
naugtur

is_home() sẽ không hoạt động cho đến khi wp_query được chạy. Móc sớm nhất bạn có thể sử dụng nơi is_home sẽ hoạt động là 'parse_query', nhưng 'template_redirect' sẽ tốt hơn.

9
John P Bloch

Để theo dõi câu trả lời của John: Thêm một cuộc gọi đến chức năng đã nói trên một trong những câu được đề cập bởi John và hakre.

Thêm, ví dụ: các mục sau vào hàm.php của bạn:

<?php
function my_function_name(){
  if(is_home()) do_something();
}

add_action('template_redirect', 'my_function_name');
?>

EDIT: Lúc đầu tôi đã đọc sai câu hỏi của bạn - có vẻ như bạn đã có một hàm đóng gói mã rồi, chỉ là bạn đang bắn nhầm vào hook. Hoặc chia phần đó thành một chức năng riêng biệt và kích hoạt nó tại template_redirect, v.v., hoặc thay đổi nơi bạn đang nối ở vị trí đầu tiên.

2
ZaMoose