it-swarm.com.de

Zeilenumbrüche in wp_list_categories () entfernen?

Ich versuche, eine Liste von Kategorien pro Artikel auszugeben. Ich benutze den folgenden Code,

<?php wp_list_categories('child_of=270&style=none'); ?>

(Zeichenfolge) Stil, in dem die Kategorieliste angezeigt wird. Ein Wert von list zeigt die Kategorien als Listenelemente an, während none keine spezielle Anzeigemethode generiert (die Listenelemente werden durch <br>-Tags getrennt).

Wie entferne ich den dummen <br /> nach jeder Ausgabe?

Frustrierend, wie dieser Code

<?php the_category(', '); ?>

Gibt die Links ohne Zeilenumbruch aus ...

Jede Hilfe wäre sehr dankbar.

3
Zach Smith

Ich bin zu einer Lösung gekommen, indem ich den Wordpress Codex durchgesehen habe. Der Trick besteht darin, das automatische Echo von wp_list_categories auszuschalten und dann str_replace () zu verwenden. Mein Beispiel lautet:

<?php $variable = wp_list_categories('child_of=270&style=none&echo=0'); ?>
<?php $variable = str_replace('<br />', '', $variable); ?>
<?php echo $variable; ?>

Die einzige echte Änderung in Ihrer Abfrage ist das Einfügen von "echo = 0", wodurch die Informationen in einer Variablen zurückgegeben werden und nicht nur angezeigt werden.

Die eigentliche Arbeit erledigt str_replace (), das nach <br />-Tags sucht und diese aus dem String entfernt. Dann geben Sie einfach den aktualisierten String wieder und es gibt keine Pausen mehr!

3
PNMG

Vielen Dank für die Antwort oben. Ich habe eine Lösung gefunden, mit der die Ausgabe von wp_list_categories noch individueller gestaltet werden kann. Ich verwende dies, um alle Begriffe in einer Taxonomie anzuzeigen.

   <?php
        $args = array(
          'taxonomy'     => 'place',
          'orderby'      => 'name',
          'style'        => 'list',
          'show_count'   => 0,
          'pad_counts'   => 0,
          'hierarchical' => 1,
          'title_li'     => '',
          'exclude'      => '28',
          'echo'         => '0'

        );

Im Gegensatz zu dem obigen Beispiel, das 'style' => 'none' erfordert, verwende ich 'style' => 'list' und gebe eine ungeordnete Liste mit <li>- und <ul>-Tags, aber keinen <br />-Tags aus.

Dann entfernt der Befehl PHP strip_tags selektiv alle HTML-Tags. Dies funktioniert natürlich auch zum Entfernen des Tags <br />, wenn 'style' => 'none' verwendet wird.

    <?php $variable = wp_list_categories($args); ?>
    <?php $variable = strip_tags( $variable, '<a>' ); ?>
    <?php echo $variable; ?>

Der zweite Parameter in strip_tags sind die zulässigen Tags, d. H. Tags, die im Code enthalten sind. Das <a>-Tag bleibt also erhalten, um alle Links und Bingo zu erhalten!

Die Deluxe-Version ermöglicht es nun beispielsweise, untergeordnete Begriffe anders zu gestalten als ihre Eltern:

    <?php $variable = wp_list_categories($args); ?>
    <?php $variable = strip_tags( $variable, '<a><ul>' ); ?>
    <?php $variable = str_replace('ul', 'span', $variable); ?>
    <?php echo $variable; ?>

Erstens behalten Sie das <a>-Tag und das <ul>-Tag bei, die immer die Klasse "children" haben. Dann wird 'ul' durch 'span' ersetzt und der Tag lautet <span class="children">. Jetzt sind alle Listen-Tags weg und Sie können einen CSS-Stil für die Klasse "Kinder" hinzufügen.

1
Dr. Benway

Der einfachste Weg, um die Links in eine Linie zu bringen, ist die Ausgabe mit li-Elementen. Setzen Sie style also nicht auf "none".

Dann können Sie einfach die Anzeige einstellen: inline; auf "li" -Elemente in Ihrem Container.

viel sauberer auf diese Weise

0
xodobe