So bearbeiten Sie Widgets in WordPress

7

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.

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

Ich habe in der theme/includes/widgets.phpDatei gesucht, aber nichts gefunden.

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

Der Code in theme/sidebar.phpist für (!dynamic_sidebar()), aber meine Seitenleiste ist dynamisch, so dass dieser Code nutzlos ist.

AlexMorley-Finch
quelle
Vielleicht suchen Sie danach: stackoverflow.com/a/2293494
Asko
dynamic_sidebar()Wenn eines der Aufrufe eines von zwei Dingen ausführt, wird entweder die Seitenleiste wiedergegeben oder false zurückgegeben. Also if( !dynamic_sidebar() )wird entweder die Seitenleiste wiedergegeben oder eine Art Fallback durchgeführt.
Mor7ifer

Antworten:

10

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 beziehen ihren Wert aus den register_sidebarsArgumenten.

args (string / array) (optional)
Erstellt eine Seitenleiste basierend auf den Werten 'name' und 'id'. Standard: Keine
name- Name der Seitenleiste.
id- Seitenleisten-ID.
before_widget- HTML vor jedem Widget zu platzieren.
after_widget- HTML nach jedem Widget zu platzieren.
before_title - HTML vor jedem Titel.
after_title - HTML nach jedem Titel.

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' );
}
Chris_O
quelle
Wo füge ich diese Klasse in mein Kinderthema ein?
Shorif2000
0

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>',
) );
wassem
quelle