Also ich habe Kommentare und Trackbacks getrennt in der comment.php.
<?php if ($comments) : ?>
<h2>Kommentare</h2>
kann ich den Titel für Kommentare ausgeben, wenn Kommentare vorhanden sind.
Wie geht das bei Trackbacks?
Der Titel soll nur erscheinen, wenn auch Trackbacks vorhanden sind.
Vielen Dank für Eure Hilfe!
Trackback Abfrage in Comment.php
-
-
- Gerade eben
- 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)
-
Im Prinzip genauso. Du hast ja für die Trackbacks sicher genauso eine Schleife.
-
Besten Dank!
Ich Dössel hatte ausversehen ein <?php endif; ?> vergessen. -
Jetzt habe ich ein neues Problem entdeckt. Habe ich nur Kommentare und kein Trackback, dann steht natürlich Trackback so völlig sinnlos in der Gegend. Und umgekehrt.
1 Schleife Kommentare:
<?php if ($comments) : ?>
<h2>Kommentare</h2>2. Schleife Trackbacks:
<?php if ($comments) : ?>
<h2>Trackbacks</h2>Jetzt reagiert es natürlich auf beiden gleich, egal ob nur Kommentar, nur Trackback oder beides.
Gibt es Vielleicht noch etwas, wo mit ich die Schleife nur auf Trackbacks hinbekomme? Und das gleiche mit Kommentare.
-
Aus deinem Code geht nicht hervor, was in $comments steht. Idealerweise hast du 2 Arrays $comments und $trackbacks - eins enthält alle Kommentare, das andere die Trackbacks. Diese prüfst du unabhängig voneinander auf enthaltende Elemente und gibst diese auch unabhängig voneinander aus.
-
[COLOR=#000000][COLOR=#0000cc]Ich denke das ich hier [/COLOR][/COLOR][COLOR=#000000][COLOR=#0000cc]
<?php [/COLOR][COLOR=#006600]foreach ([/COLOR][COLOR=#0000cc]$comments [/COLOR][COLOR=#006600]as [/COLOR][COLOR=#0000cc]$comment[/COLOR][COLOR=#006600]) : [/COLOR][COLOR=#0000cc]?>
[/COLOR][/COLOR][COLOR=#000000][COLOR=#0000cc]was anders übergeben muss bei Trackback?Weiß nicht wie ich Kommentare und Trackbacks auseinander bekommen.
[/COLOR][/COLOR]
[COLOR=#000000][COLOR=#0000cc]Das ist die Kommentar Schleife:[/COLOR][/COLOR]PHP
Alles anzeigen<!--kommentare--> <?php if ($comments) : ?> <h2>Kommentare</h2> <ul id="commentlist"> <?php foreach ($comments as $comment) : ?> <?php if (get_comment_type() == "comment"){ ?> <li <?php if( $comment->user_id == $post->post_author) {echo 'class="mine"'; } else { echo $oddcomment; } ?> id="comment-<?php comment_ID() ?>"> <!-- Gravatar --> <div class="comment-gravatar"> <?php echo get_avatar(get_comment_author_email(), '32', $default = '' ); ?> </div> <span class="comment-title"><strong><?php comment_author_link() ?></strong></span> <br /> <p class="comment-meta"> <a href="#comment-<?php comment_ID() ?>"> <?php comment_date('j. F Y') ?></a> </p> <br /><br /> <div class="comment-text"><?php comment_text() ?></div> <br /> </li> <?php if ('alt' == $oddcomment) $oddcomment = ''; else $oddcomment = 'alt'; ?> <?php } ?> <?php endforeach; /* end for each comment */ ?> </ul> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post-> comment_status) : ?> <?php /* No comments yet */ ?> <?php else : // comments are closed ?> <?php /* Comments are closed */ ?> <p><?php _e('Comments are closed.'); ?></p> <?php endif; ?> <?php endif; ?> <!--kommentare aus-->[COLOR=#000000][COLOR=#0000cc] Und das ist die Trackback Schleife
[/COLOR][/COLOR]PHP
Alles anzeigen<!--trackback--> <p></p> <?php if ($comments) : ?> <h2>Trackbacks</h2> <ul id="commentlist-track"> <?php foreach ($comments as $comment) : ?> <?php if (get_comment_type() != "comment"){ ?> <li style="list-style-type:disc" <?php if( $comment->user_id == $post->post_author) {echo 'class="mine"'; } else { echo $oddcomment; } ?> id="comment-<?php comment_ID() ?>"> <span class="comment-trackbackmeta"> <?php comment_author_link() ?> <?php comment_date('j. F Y') ?></span> </li> <?php if ('alt' == $oddcomment) $oddcomment = ''; else $oddcomment = 'alt'; ?> <?php } ?> <?php endforeach; /* end for each comment */ ?> </ul> <p><?php if ( pings_open() ) : ?><?php endif; ?></p> <?php if ('open' == $post-> comment_status) : ?> <?php /* No comments yet */ ?> <?php else : // comments are closed ?> <?php /* Comments are closed */ ?> <p><?php _e('Comments are closed.'); ?></p> <?php endif; ?> <?php endif; ?> <!--trackback aus--> -
Ja, so wird das nichts, in $comments stehen ja alle Kommentare UND Trackbacks, erst innerhalb der Schleife wird geprüft ob gerade ein Trackback oder Kommentar ausgegeben wird.
Eine mögliche Lösung: Output Buffering - d.h. alles in eine Variable/einen Puffer schreiben und am Ende prüfen ob überhaupt was auszugeben ist (z.B. Zähler mitlaufen lassen).
Eine andere Möglichkeit wäre, $comments nach "comment_type" zu sortieren und danach zu splitten, so dass du mehrere Arrays hast, die du einzeln prüfen und in mehreren Schleifen durchlaufen kannst. Oder du schaust einmal über das gesamte Array, ob/welche "comment_type" enthalten sind.
-
Schade, ich dachte es geht einfacher. Das übersteigt mein PHP Knowhow.
Vielen Dank für Dein Engagement!
-
Warte mal auf 2.7, ich glaube dann gehts einfacher. Jedenfalls sollen Kommentare und Trackbacks dann wohl getrennt behandelt werden. ;-)
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!