Cum să determini dacă un post conține conținut de widget?
Am un sidebar înregistrat numit "my-header" care afectează poziționarea absolută a elementelor de sub el în markup.
Am nevoie să execut o interogare în header.php pentru a determina dacă sidebar-ul este prezent pentru postarea curentă și să scriu un identificator de clasă în tag-ul body al temei mele. Voi folosi această clasă CSS pentru a ajusta poziționarea absolută a elementelor în consecință.
Există o metodă care poate fi apelată, separat de metoda folosită pentru afișarea sidebar-ului, pentru a determina dacă postarea are conținut de widget pentru widget-ul "my-sidebar"? De exemplu, una care returnează doar true/false?
După ce am analizat widgets.php, am încercat să folosesc is_active_sidebar('my-header') dar returnează true pentru toate paginile. Am nevoie de o funcție care acceptă postarea ca argument. Dacă nu există, presupun că voi crea propria funcție.

<?php
$bodyclass = "";
// suntem pe o pagină 'single'? adică un articol, pagină sau alt tip de postare personalizată?
if(is_single()){
// este aceasta o postare de tip 'page'? sau este un articol de blog?
global $post;
if($post->post_type == 'page'){
// acum putem verifica dacă avem o bară laterală cu conținut activ
if( is_active_sidebar('my-header')){
$bodyclass="wehavesidebarcontentyay";
}
}
}
?>
<body <?php body_class($bodyclass); ?>>
Desigur, dacă aveți body_class pe tag-ul body, atunci probabil aveți deja clasele CSS și selectorii necesari pentru a face asta fără codul PHP.
