it-swarm.asia

لماذا لا يعمل is_home () بشكل صحيح؟

أضع if(is_home()) في وظائف theme.php الخاصة بي ولا يبدو أنه يعمل. يتم استدعاء الوظيفة التي تحتوي على هذه البتة على الحرف الأولي لذلك يجب أن تعمل is_home بالفعل.

3
naugtur

is_home() لن يعمل حتى يتم تشغيل wp_query. أقرب رابط يمكنك استخدامه حيث ستعمل is_home هو 'parse_query' ، لكن 'template_redirect' سيكون أفضل.

9
John P Bloch

لمتابعة إجابة John: أضف دعوة إلى الوظيفة المذكورة على أحد الخطافات التي ذكرها John و hakre.

أضف ، على سبيل المثال ، ما يلي إلى jobs.php:

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

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

تحرير: لقد أخطأت في قراءة سؤالك في البداية - يبدو أنك حصلت على وظيفة لتغليف الكود بالفعل ، إنه مجرد إطلاق النار على الخطاف الخاطئ. إما أن تقسم هذا القسم إلى وظيفة منفصلة واطلب تشغيله على template_redirect ، وما إلى ذلك ، أو قم بتغيير المكان الذي تتواجد فيه في المقام الأول.

2
ZaMoose