Wie überprüfe ich, ob die searchform.php als Widget eingebunden ist?

Ich möchte etwas in searchform.php einfügen:

 //load serach form for sidebar...  //load different search form for page content (404 page)  

Wie kann ich $widget Variable vorbereiten? Oder sollte ich eine andere Methode verwenden? Wie Filter? Oder Vorlageteil bekommen?

Solutions Collecting From Web of "Wie überprüfe ich, ob die searchform.php als Widget eingebunden ist?"

Überprüfen Sie, ob die Suchmaske enthalten ist.

Die function get_search_form() (die verwendet werden soll) verwendet locate_template('searchform.php'); um das Suchformular anzuzeigen.

Die spätere Rückkehr (wie Sie von seiner Quelle sehen können)

der Name der Vorlage, wenn sich einer befindet

Wenn Sie also nur den Standardweg abfangen wollen, sollten Sie einfach testen

 'searchform.php' === locate_template( 'searchform.php' ) AND print 'Search form displayed!'; 

Sie können vielleicht an hundert andere Szenarien denken, wie Sie das Suchformular einfügen können, aber Sie werden nie alle fangen.

Das eigentliche Problem (und ich habe keine Lösung dafür) ist, dass dies nur die Existenz überprüft, nicht wenn es über ein Widget eingebunden ist. Also oben soll nur von innerhalb eines (benutzerdefinierten) Widgets funktionieren.

Widget programmgesteuert anzeigen

Wenn Sie ein Widget (in Abwesenheit von anderen) über PHP-Code in Ihrer Vorlage anzeigen möchten, dann gehen Sie mit dem the_widget() Source “ .

Überprüfen Sie Ihre Seitenleisten

Um Ihre Seitenleisten zu überprüfen, können Sie einfach die $GLOBALS['wp_registered_sidebars'] überprüfen.

Überprüfen Sie Ihre Widgets

Core hat auch die Möglichkeit, die registrierten Widgets zu überprüfen: wp_get_sidebars_widgets() , mit denen Sie nach dem Vorhandensein eines Widgets suchen können.

Das habe ich mit get_template_part(); – Sie brauchen nur searchform.php und searchform-different.php.