2 Stimmen

liefert die ID oder die Reihenfolge des ersten Widgets in einer WordPress-Seitenleiste

Ich verwende WordPress. Im Backend meiner Website gibt es eine Seitenleiste. In dieser Seitenleiste gibt es n Widgets. Ich möchte eine CSS-Klasse nur für das erste Widget hinzufügen und nicht für die anderen.

Wie kann ich damit umgehen?

Bitte um Hilfe!

2voto

Ivan Ivanic Punkte 2869

Sie sollten eine dynamische Seitenleiste erstellen, die den Klassen oder IDs der Widgets eine Nummerierung hinzufügen würde. Hier ist ein schöner Beitrag darüber: http://wordpress.org/support/topic/how-to-first-and-last-css-classes-for-sidebar-widgets

0voto

tkit Punkte 7156

Was genau wollen Sie ändern? Sie können html in Widgets einfügen, so dass Sie den Inhalt Ihres Widgets replizieren können, wenn es sich um etwas Einfaches handelt - Sie können auch ID-s und Klassen in html einfügen (und das css in der style.css-Datei Ihres Themes bearbeiten), oder Sie können sogar css direkt mit style="" Tag-Option. Wenn es nicht etwas Einfaches ist, dann hat es bereits IDs und/oder Klassen - also sollten Sie diese IDs und Klassen mit Feuerteufel und bearbeiten Sie dann das Styling in style.css.

0voto

t31os Punkte 2472

Ich habe nicht viel Erfahrung mit den Widget-Haken in WordPress, aber ich glaube, dies sollte decken, was Sie fragen.

<?php
if( !is_admin() ) {
    $sidebar_id = 'your-sidebar-id-here';
    $sidebars_array = wp_get_sidebars_widgets();
    if( isset( $sidebars_array[$sidebar_id] ) && ( !empty( $sidebars_array[$sidebar_id] ) ) ) {
        $first_widget = current( $sidebars_array[$sidebar_id] );
        add_action( 'widgets_init', 'so4461485_widget_custom', 10000 );
    }
}

function so4461485_widget_custom() {
    global $wp_registered_widgets, $first_widget;

    if( empty( $wp_registered_widgets ) )
        return;

    foreach( $wp_registered_widgets as $widget_id => $widget_data_array ) {
        if( $widget_id != $first_widget )
            continue;
        if( isset( $widget_data_array['classname'] ) )
            $wp_registered_widgets[$widget_id]['classname'] .= ' first_widget';
    }
}
?>

Sie müssen lediglich die your-sidebar-id-here (Zeile 3 des Codes) mit einer gültigen Sidebar-ID (d. h. der ID, die bei der Registrierung der Sidebar festgelegt wurde).

Der Code kann der Einfachheit halber in der functions.php des Themes platziert werden. Wenn Sie Probleme haben, den Code zu platzieren, stellen Sie einfach sicher, dass Sie keine PHP-Tags verschachteln (z. B. <?php <?php ).

EDIT: Die akzeptierte Antwort bezieht sich wahrscheinlich auf die eigentliche Frage, also folgen Sie diesem Rat

Ich hoffe, das hilft...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X