Ich möchte überprüfen, ob eine registrierte Seitenleiste Widget-Inhalte enthält - kann aber anscheinend keine WP-Funktion dafür finden - is_active_widget prüft, ob sie Inhalte enthält, aber nicht, ob sie vorhanden sind oder nicht.
function ql_widget( $widget, $widget_name, $element = 'sider' ){
if ( $widget ) { // widget name passed ##
// check if widget is active - return html & widget content if true ##
if ( is_active_sidebar( $widget ) ) {
echo '
<div class="'.$element.'">';
dynamic_sidebar( $widget );
echo '</div>';
} else {
// issue error if requested widget does not exist or is empty ##
if ( ql_user_is_administator() ) { // user is admin ##
if ( dynamic_sidebar( $widget ) ) { // empty ##
$message = 'empty';
} else { // widget ID or name wrong ##
$message = 'error';
}
?>
<div class="error"><strong>Widget <?php echo $message; ?>:</strong>
<?php echo $widget_name ? $widget_name : $widget ; ?></div>
<?php
}
}
}
}
Ich nenne das auf der Seite mit:
// load widget ##
// widget_id, widget name, class of containing element ##
ql_widget( 'sidebar-general', 'Standard Sidebar', 'sider' );
Die Seitenleisten sind korrekt bei register_sidebar () registriert und haben jeweils eine eindeutige ID.
Derzeit gibt diese Funktion den Fehler an den Administrator zurück, wenn das Widget fehlt oder leer ist. Ich möchte den Fehler so anpassen können, dass er anzeigt, ob er fehlt oder leer ist
Vielen Dank!
UPDATE Hier ist die Arbeitsfunktion: Link zum Pastebin