• Nabend,

    ich habe ein kleines Widget geschrieben. Ziel soll sein, das man Text anzeigen kann, aber einstellt auf welchen Unterseiten es angezeigt wird.

    Soweit alles kein Problem. Aber ich kann das Widget nur einmal in die Sidebar ziehen, benötige es aber mehrfach.

    Bisher sieht das ganze so aus:

    <?php
    /*
    Plugin Name: RTO Text Field
    Plugin URI: http://www.rto.de
    Description: Dieses Plugin erstellt ein Sidebar-Widget das für einstellbare Artikel Text anzeigt.
    Author: Sascha Hennemann
    Version: 1.0
    Author URI: http://www.postpic.info
    */
    function show_textfield_init() {
    		if ( !function_exists('wp_register_sidebar_widget') )
    		return;
    
    		function show_textfield($args) {
    		// Hauptfunktion
    
    				extract($args);
    				$options = get_option('show_textfield');
    
    				// ...
    
    		function show_textfield_control(){
    				$options = get_option('show_textfield');
    
    					// ...
    
    		}
    
    		wp_register_sidebar_widget('show_textfield','RTO Text Field', 'show_textfield',array('classname' => 'show_textfield', 'description' => 'Zeigt Texte an.'));
    		wp_register_widget_control("show_textfield","RTO Text Field Admin", "show_textfield_control",array('width' => 300));
    
    }
    add_action('widgets_init', 'show_textfield_init');
    ?>

    Wie genau passe ich das am besten an, damit man es mehrfach nutzen kann?

    Mfg
    Sascha H.

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)
  • Hi,

    ein Ansatz wäre, das ganze Widget als Class anzulegen.
    Die Widgets, welche ich bis jetzt geschrieben habe, sind alles Class und ich kann sie beliebig oft in die Sitebar legen.

    Hier mal ein Ansatz:

    Class HelloWorld Extends WP_Widget {
      Function HelloWorld(){
        // Konstruktor: Hooks, Filter, etc.
        $this->WP_Widget ( False, 'Hello World!');
      }
    
      Function widget ($args, $settings){
        // Ausgabe in der Sidebar
    
        // Ausgabe des Widgets Pre-Codes:
        Echo $args['before_widget'];
    
          // Ausgabe des Titels
          Echo $args['before_title'];
            Echo 'Hello World!'; // Der Titel
          Echo $args['after_title'];
    
          // Ausgabe eines Textes:
          Echo 'Das ist ein Hallo Welt Widget! Ich kann auch dynamische Inhalte anzeigen: '.Date('d.m. H:i');
    
        // Ausgabe des Widgets Post-Codes:
        Echo $args['after_widget'];
      }
    
      Function form ($settings){
        // Form der Admineinstellungen
      }
    
      Function update ($new_settings, $old_settings){
        // Speichert Einstellungen aus dem Adminpanel
      }
    }
    Thread-Starter SaschaH25

    (@saschah25)

    Guten Morgen,

    besten dank, aber hab das Widget mittlerweile schon auf das neue Klassensystem umgestellt.
    Hatte zwar ne Anleitung gefunden, wie man auch die alten Widgets zu MultiWidgets macht, aber das ist wesentlich komplizierter als das ganze zur Klasse zu machen.

    Mfg
    Sascha

    Hi,

    hatte es leider erst vor kurzem gelesen,
    aber dann lag ich ja nicht so falsch mit dem Vorschlag.

Ansicht von 3 Antworten – 1 bis 3 (von insgesamt 3)

Das Thema „Widget mehrfach benutzen“ ist für neue Antworten geschlossen.