J'ai une partie de modèle comme celle-ci:
<nav id="subpagemenu" class="sidebar">
<?php get_template_part( 'nav', 'subset' ); ?>
<?php get_sidebar(); ?>
</nav>
Les deux sont conditionnels, je veux dire, rien ne se chargera s'il n'y a pas de contenu. s'il y a du contenu, ils chargent tous les deux des boîtes comme:
<div class="widget">
Maintenant, j'aimerais pouvoir savoir s'il y a des widgets (barre latérale ou mon template_part), afin que dans mon functions.php, je puisse définir une variable $ mywidgets = true ou false.
Je sais que je peux utiliser '_is_active_sidebar' pour une partie, mais comment puis-je vérifier l'autre partie? Je ne veux pas enregistrer cette partie dans la barre latérale ... Tout ce dont j'ai besoin, c'est d'un "vrai/faux".
J'ai essayé 'is_page_template' et 'set_theme_mod'. J'ai aussi regardé ces discussions:
https://stackoverflow.com/questions/6366351/getting-dom-elements-by-class-name
Est-ce que je pense à cela de la mauvaise façon? Besoin de construire le thème différemment?
Merci!
Vous pouvez définir une variable globale dans votre thème functions.php
global $mywidgets;
$mywidgets = false;
dans votre partie du modèle, ajoutez
global $mywidgets;
$mywidgets = true;
et dans vos fonctions, vous pouvez vérifier si sa définition est vraie:
function my_function(){
global $mywidgets;
$mywidgets = true;
if ($mywidgets){
// YES Your template part is loaded
}else{
// NO Your template part is not loaded
}
}