Ich möchte jedes in einer Seitenleiste vorhandene Widget abrufen, um es z. B. mit Posts innerhalb der Hauptschleife zu mischen.
Ich weiß, dass ich verschiedene Widget-Bereiche (Seitenleisten) verwenden kann, aber dieser Ansatz überfüllt die Widget-Verwaltungsseite mit einigen zehn Seitenleisten. Um dies zu mildern, dachte ich, sie einfach zu einer einzelnen Seitenleiste hinzuzufügen und sie bei Bedarf nacheinander abzurufen.
Aber ich stecke fest. Ich habe keine Ahnung, wie ich ein Widget separat abrufen kann.
Mein vorläufiger Ansatz besteht darin, wp_get_sidebars_widgets und the_widget zu verwenden, aber ich kann den Namen der Widget-Klasse nicht abrufen.
Hier ist ein vereinfachter Ausschnitt meines Codes. In diesem Fall versuche ich, alle drei Beiträge ein Widget hinzuzufügen, dies ist jedoch eine zu starke Vereinfachung der Logik (da ich sie nicht nur regelmäßig hinzufügen möchte), um Ihnen die Idee zu vermitteln. Ich möchte jedes Widget mit the_widget
oder einer anderen Funktion visualisieren . Wie kann ich das erreichen? Ist es möglich?
<?php
$i = 1;
$widgets = wp_get_sidebars_widgets(); // I KNOW THE USE OF THIS IS DISCOURAGED (PRIVATE) BUT CANNOT FIND ALTERNATIVES.
if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
if ($i%3 == 0){
echo "<h1>WIDGET #".($i/3)."</h1>";
the_widget($widgets['homepage-1'][$i/3]); // THIS DOES NOT WORKS SINCE I'M NOT GIVING THE CLASS NAME. HOW TO RETRIEVE IT?
}
get_template_part( 'content', get_post_format() );
$i++;
?>
<?php endwhile; ?>
<?php _s_paging_nav(); ?>
<?php else : ?>
<?php get_template_part( 'content', 'none' ); ?>
<?php endif; ?>