it-swarm.com.de

So bearbeiten Sie Widgets in WordPress

Im Menü Darstellung -> Widgets gibt es eine Liste von Widgets, die Sie per Drag & Drop in der Seitenleiste anzeigen können.

Wo ist der HTML/PHP-Code für diese benutzerdefinierten Widgets?

Ich war in der Funktionsreferenz von WordPress, konnte aber nichts finden. Sicherlich müssen diese Widgets aus einer HTML/PHP-Vorlage gezogen werden.

Ich möchte wissen, dass die Widget-Titel standardmäßig <h3>-Tags sind und ich möchte sie in <h5>-Tags ändern. Außerdem muss ich einige <hr /> und andere Dinge hinzufügen.

Ich habe in der theme/includes/widgets.php-Datei gesucht, aber nichts gefunden.

Ich benutze übrigens eine Kopie von Twenty Eleven, um mein Thema zu ändern.

Der Code in theme/sidebar.php ist für (!dynamic_sidebar()), aber meine Seitenleiste ist dynamisch, sodass dieser Code unbrauchbar ist.

7

Mit der WordPress Widgets API werden verschiedene Widgets erstellt und Seitenleisten registriert.

Beim Erstellen eines neuen Widgets können Variablen zu jedem Widget hinzugefügt werden. Diese erhalten ihren Wert aus den Argumenten register_sidebars .

args (Zeichenfolge/Array) (optional)
Erstellt eine Sidebar basierend auf den Werten 'name' und 'id'. Standardeinstellung: Keine
name - Name der Seitenleiste.
id - Sidebar-ID.
before_widget - HTML vor jedem Widget.
after_widget - HTML, das nach jedem Widget eingefügt wird.
before_title - HTML vor jedem Titel.
after_title - HTML, das nach jedem Titel eingefügt wird.

Beispiel:

<?php
    add_action( 'widgets_init', 'prefix_register_sidebars' ); 
    function prefix_register_sidebars() {
         $args = array(
         'name' => 'My Sidebar',
         'id'   => 'my-sidebar',
         'before_widget' => '<div id="%1$s" class="widget %2$s">',,
         'after_widget'  => '</div><hr />',
         'before_title'  => '<h5 class="widgettitle">',
         'after_title'   => '</h5>'
         );
      register_sidebars( $args );
   }

Beispiel Widget:

class MY_Widget extends WP_Widget {
    function my_widget( $args, $instance ) {
         $widget_ops = array(
         'description' => 'My Widget Description'
         );
        parent::WP_Widget(false, 'My Widget Name', $widget_ops );
    }
    function widget() { // This controls the display of the widget
    $title = 'My Widget Title';

    echo $before_widget;  // Outputs the the 'before_widget' register_sidebars setting
    echo $title;         //Will be wrapped in the 'before_title' and 'after_title' settings
    echo '<p>This is my widget output</p>';
    echo $after_widget;  //Outputs the 'after_widget' settings
    }
}
add_action( 'widgets_init', 'prefix_register_widgets' );
function prefix_register_widgets() {
    register_widget( 'my_widget' );
}
10
Chris_O

es ist in der functions.php

funktion twentyeleven_widgets_init () {

register_widget( 'Twenty_Eleven_Ephemera_Widget' );

register_sidebar( array(
    'name' => __( 'Main Sidebar', 'twentyeleven' ),
    'id' => 'sidebar-1',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => "</aside>",
    'before_title' => '<h3 class="widget-title">',
    'after_title' => '</h3>',
) );
0
wassem