Hallo,
ich habe ein Problem bei dem ich absolut nicht weiter komme. Ich habe ein Plugin geschrieben, welches einen Webservice abfragt und das Ergebnis an den Content rannhängt und returnt. Nun möchte ich ein Widget haben, welches einfach nur Text ausgibt. Der Text soll aber aus einer Variablen kommen, die mein Plugin aus der Webserverabfrage generiert hat.
Zusätzlich soll das Widget nur sichtbar sein, wenn ein Artikel, also is_single(), angezeigt wird.
Da ich noch kein Widget für WP geschrieben habe, bin ich gerade ratlos. Muss ich vielleicht das Plugin vom Widget trennen um dann Zugriff auf das Widget über eine Art ID zu bekommen? Ist mein Vorhaben überhaupt möglich oder muss ich das ganze direkt in das Theme reinbasteln?
Mein Ansatz bis jetzt war, das Widget Objekt erst im Plugin, hinter einer is_single() Abfrage zu instanzieren und dann die $settings Variable zu verändern. Aber es scheint als wäre ich damit vollkommen auf dem Holzweg. Es würde mich echt freuen wenn mir jemand helfen / ein Denkanstoß geben kann.
Danke in Voraus und LG
Quellcode vom Plugin:
/* Start Widget Code*/
Class TestWidget Extends WP_Widget {
Function TestWidget(){
$this->WP_Widget ( False, 'Test Widget'); // Konstruktor
}
Function widget ($args, $settings){
Echo $args['before_widget']; // Ausgabe des Widgets Pre-Codes:
Echo $args['before_title']; // Ausgabe des Titels
Echo 'Anzeige';
Echo $args['after_title'];
Echo $settings['text']; // Ausgabe eines Textes - irgendwie modifizierbar?:
Echo $args['after_widget'];// Ausgabe des Widgets Post-Codes:
}
}
Add_Action ('widgets_init', Create_Function('', 'Register_Widget("TestWidget");'));
/* Ende Widget Code*/
/* Start des eigentlichen Plugins */
add_filter('the_content', 'create_content',2);
function create_content($content)
{
if( is_single() )
{
/* Hier wird der Webservice abgefragt und das Ergebnis in $text gepeichert */
}
}
/* Ende des eigentlichen Plugins */
Alles anzeigen