Hilfe !! ich komm nicht weiter

  • Hey und zwar bin ich aktuell dabei ein neues Plugin für Elementor zu entwickeln. Mein Problem liegt nun darin das ich eine foreach Schleife in mehrere columns unterteilen möchte.

    protected function render() {
    $settings = $this->get_settings_for_display();
    $fallback_defaults = [
    'fa fa-check',
    'fa fa-times',
    'fa fa-dot-circle-o',
    ];

    $this->add_render_attribute( 'icon_list', 'class', 'elementor-icon-list-items' );
    $this->add_render_attribute( 'list_item', 'class', 'elementor-icon-list-item' );

    if ( 'inline' === $settings['view'] ) {
    $this->add_render_attribute( 'icon_list', 'class', 'elementor-inline-items' );
    $this->add_render_attribute( 'list_item', 'class', 'elementor-inline-item' );
    }
    ?>

    <ul <?php $this->print_render_attribute_string( 'icon_list' ); ?>>
    <?php

    foreach ( $settings['icon_list'] as $index => $item ) :
    echo '<div class="second-wrapper">';
    $repeater_setting_key = $this->get_repeater_setting_key( 'text', 'icon_list', $index );

    echo '<div class="inner-wrapper">';

    $this->add_render_attribute( $repeater_setting_key, 'class', 'elementor-icon-list-text' );

    $this->add_inline_editing_attributes( $repeater_setting_key );
    $migration_allowed = \Elementor\Icons_Manager::is_migration_allowed();
    ?>
    <span <?php $this->print_render_attribute_string( 'list_item' ); ?>>
    <?php
    if ( ! empty( $item['link']['url'] ) ) {
    $link_key = 'link_' . $index;

    $this->add_link_attributes( $link_key, $item['link'] );
    ?>
    <a <?php $this->print_render_attribute_string( $link_key ); ?>>

    <?php
    }

    // add old default
    if ( ! isset( $item['icon'] ) && ! $migration_allowed ) {
    $item['icon'] = isset( $fallback_defaults[ $index ] ) ? $fallback_defaults[ $index ] : 'fa fa-check';
    }

    $migrated = isset( $item['__fa4_migrated']['selected_icon'] );
    $is_new = ! isset( $item['icon'] ) && $migration_allowed;
    if ( ! empty( $item['icon'] ) || ( ! empty( $item['selected_icon']['value'] ) && $is_new ) ) :
    ?>
    <span class="elementor-icon-list-icon">

    <?php
    if ( $is_new || $migrated ) {
    \Elementor\Icons_Manager::render_icon( $item['selected_icon'], [ 'aria-hidden' => 'true' ] );
    } else { ?>
    <i class="<?php echo esc_attr( $item['icon'] ); ?>" aria-hidden="true"></i>
    <?php } ?>
    </span>
    <?php endif; ?>
    <span <?php $this->print_render_attribute_string( $repeater_setting_key ); ?>><?php $this->print_unescaped_setting( 'text', 'icon_list', $index ); ?></span>
    <?php if ( ! empty( $item['link']['url'] ) ) : ?>
    </a>
    <?php endif; ?>
    </span>
    </div>
    </div>
    <?php
    endforeach;
    ?>
    </ul>

    hätte hier jemand eventuell eine Idee wie ich zum beispiel 2 der spans in einen div packen kann dann wieder 3 in einen und so weiter ?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Nö. Der Sinn eines Titels ist, dem potentiellen Helfer in Kurzform anzudeuten, worum es geht, damit er schon VOR dem Öffnen des Beitrags weiß, ob er dazu Hilfe beisteuern kann oder nicht. Oder meinst du, dieses Forum würde noch funktionieren, wenn jeder seinen Titel nur noch "Komme nicht weiter", "Weiß nicht wie das geht", "Ich bin blöd und habe keine Ahnung" nennt?

  • Das ist ja oke, aber wenn jeder gleich beleidigend wird, würde das Forum auch nicht mehr funktionieren. Tut mir leid das ich leider erst in meiner Ausbildung bin und noch nicht zu 100% Bescheid weis.

  • Nö. Der Sinn eines Titels ist, dem potentiellen Helfer in Kurzform anzudeuten, worum es geht, damit er schon VOR dem Öffnen des Beitrags weiß, ob er dazu Hilfe beisteuern kann oder nicht. Oder meinst du, dieses Forum würde noch funktionieren, wenn jeder seinen Titel nur noch "Komme nicht weiter", "Weiß nicht wie das geht", "I[COLOR=#ff4d4d]ch bin blöd und habe keine Ahnung" nennt?[/COLOR]

    Falls ich das falsch verstanden habe, tut es mir natürlich leid

    • Was genau ist die Frage?
    • An welcher Stelle genau im Code ist das Problem?
    • Um welchen [FONT=Courier New]span[/FONT] genau geht es?
    • Wo kann man die aktuelle Ausgabe des Codes ansehen?
    • Wie soll die Ausgabe nach Deiner Änderung aussehen?


    Füge Deinen Code mit dem [FONT=Courier New][+][/FONT] Symbol und Code im Forum Editor ein, der Forum Editor verändert Inhalte.

    [Blockierte Grafik: https://forum.wpde.org/attachments/20230128_025926-jpg.24831/]

  • Das ganze ist ein Elementor Widget, deshalb wird das mit der Ausgabe etwas schwierig. Mein Problem liegt darin, dass dieses Widget eine Top-Bar darstellen soll die in der Mitte über eine Column Gap verfügt. Die Einträge (<span>) werden über eine foreach Schleife generiert. Mein Problem besteht jetzt darin, das ich absolut nicht weis wie ich die generierten spans in mehrere Columns unterteilen kann um dann den Abstand zwischen den Columns einzustellen

  • Code
    foreach ( $settings['icon_list'] as $index => $item ) :


    </ul>

    Was soll das werden, wenn es fertig wird?

    foreach (iterable_expression as $key => $value)
    https://riptutorial.com/php/example/20267/using-foreach
    $settings['icon_list'] ist vermutlich kein Array und perse schrott.

    und für das was du vermutlich vor hast, kommst du mit forech nicht weit.

    Dafür verwendet man for schleifen.
    https://www.php.net/manual/de/control-structures.for.php

    Mit offenen Augen träumen

    • Was genau ist mit Column Gap gemeint? Ein Abstand zum nächsten div?
    • Versuchst Du manuell ein Menü nachzubauen? Dafür gibt es in WordPress eigentlich andere Wege, mit entspr. CSS Klassen usw. zur Formatierung nach Wunsch.
    • Was genau ist mit Column Gap gemeint? Ein Abstand zum nächsten div?
    • Versuchst Du manuell ein Menü nachzubauen? Dafür gibt es in WordPress eigentlich andere Wege, mit entspr. CSS Klassen usw. zur Formatierung nach Wunsch.


    Mit Column Gap meine ich einen Abstand zwischen collums die mehrere divs enthalten. Und ja das ist mein Ziel. Ich weis auch das es andere Wege gibt dafür. Aber ich darf leider kein eigenes CSS benutzen sondern nur die von Elementor mitgegebenen Elemente und Klassen.

  • Diese Vorgaben bzw. der Zusammenhang sind, nett gesagt, sehr seltsam.

    Es wird bereits eigener CSS Code von Elementor genutzt, in einer extra Datei, mit einem extra HTTP Request.

    Code
    https://kr-wp.bejoynt.de/wordpress/wp-content/uploads/elementor/css/post-859.css


    Wenn es um Rechenleistung auf dem Server geht, füge komplett fertigen HTML-Code für den gesamten Top Bar ein.

    Ein Elementor Widget erzeugt vermutlich mehr Overhead als ein normales WordPress Menu via [FONT=Courier New]wp_nav_menu[/FONT].

    Bin hier raus, viel Erfolg.

  • Der erzeugte HTML-Code ist nicht valide. Entferne die <div>-Elemente um die <li>. Ein <li> darf nur innerhalb eines <ul> oder <ol> oder <menu> liegen. Siehe: https://developer.mozilla.org/en-US/docs/Web…etiredLocale=de

    Ich verstehe dann weiterhin nicht was für ein "Gap" du meinst. Es gibt hier keinerlei Columns, nur Listenpunkte. Willst Du bei bestimmten Listenpunkten den visuellen Abstand erhöhen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!