Hallo zusammen!
Ich würde es bei mir auf dem Blog gerne so einrichten, das der Trackback (wie auf der verlinkten Seite) nicht als solches unter den Kommentaren erscheint, sondern ihn als regulären Link unter den Artikel einbinden.
So wie das bei Sergej wie hier ganz unten unter den Kommentaren zu finden ist.
Weiß jemand, wie das funktioniert??
Danke und Gruß
Marcus
URL der verlinkten Seite anzeigen
-
-
- 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)
-
Du musst als erstes in der comments.php die Kommentare von den Ping-/Trackbacks trennen:
PHP<ul><?php wp_list_comments([COLOR=Red]'type=comment'[/COLOR]); ?></ul> <ol class="pinglist"> <?php wp_list_comments([COLOR=Red]'type=pings[COLOR=Orange]&callback=list_pings[/COLOR]'[/COLOR]); ?> </ol>Über das callback kannst du dann in der functions.php die pings stylen:
-
Hallo zusammen!
Danke maxe. Aber irgendwie war ich für deine Lösung wohl etwa zu bl.de.
Ich habe es jetzt auf Basis der Erklärung auf dieser Seite hinbekommen.
Nur werden die pingbacks jetzt doppelt angezeigt.
Ich verstehe zwar ein wenig vom proggen. Aber wo beim erstgenannten Code jetzt der Fehler steckt, krieg ich nicht nachvollzogen.
Denn vorher waren die pingbacks nur je einmal vorhanden.
Weiß jemand Rat?
Danke und Gruß
Marcus -
Wie sieht denn jetzt deine comments.php und dein functions.php aus?
-
Hallo Maxe!
Meine comments.php sieht so aus:
PHP
Alles anzeigen<?php // Do not delete these lines if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Bitte diese Seite nicht direkt aufrufen. Danke.'); if (!empty($post->post_password)) { // if there's a password if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?> <p class="nocomments"><?php _e("Dieser Beitrag ist passwortgeschützt. Gib das Passwort ein, um die Kommentare anzuzeigen.."); ?><p> <?php return; } } /* This variable is for alternating comment background */ $oddcomment = 'alt'; ?> <!-- You can start editing here. --> <?php if ($comments) : ?> <h3 id="comments"><?php comments_number('Keine Kommentare', 'Ein Kommentar', '% Kommentare' );?> zu “<?php the_title(); ?>”</h3> <ol class="commentlist"> <?php $commentnumber = 1?> <?php foreach ($comments as $comment) : if (get_comment_type() == "comment") : ?> <li id="comment-<?php comment_ID() ?>" class="<?php echo $oddcomment; /* Style differently if comment author is blog author */ if ($comment->comment_author_email == get_the_author_email()) { echo 'authorcomment'; } ?>"> <?php echo get_avatar( $comment, 32 ); ?> <div class="cmtinfo"><small class="commentmetadata"></small><cite><?php comment_author_link() ?></cite><em>am <?php comment_date('j. F Y') ?> um <?php comment_time() ?> <?php edit_comment_link('Bearbeiten','',''); ?> </em><a href="#comment-<?php comment_ID() ?>" title=""><span class="number"><?php echo $commentnumber; $commentnumber++;?></span></a></div> <?php if ($comment->comment_approved == '0') : ?> <em>Der Kommentar muss noch freigegeben werden.</em> <?php endif; ?> <?php comment_text() ?> </li> <?php /* Changes every other comment to a different class */ if ('alt' == $oddcomment) $oddcomment = ''; else $oddcomment = 'alt'; ?> <?php endif; endforeach; ?> </ol> <?php foreach ($comments as $comment) : if (get_comment_type() != "comment") : ?> <h3 id="pings">Trackbacks/Pingbacks</h3> <ol class="pinglist"> <?php wp_list_comments('type=pings&callback=list_pings'); ?> </ol> <?php endif; endforeach; ?> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post-> comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Die Kommentarfunktion ist deaktiviert.</p> <?php endif; ?> <?php endif; ?> <div class="entry"> <p class="posted"> <?php if ($post->ping_status == "open") { ?> <a href="<?php trackback_url(display); ?>">Trackback URI</a> | <?php } ?> <?php if ($post-> comment_status == "open") {?> <?php comments_rss_link('Kommentare als RSS'); ?> <?php }; ?> </p> </div> <?php if ('open' == $post-> comment_status) : ?> <h3 id="respond">Einen Kommentar schreiben</h3> <?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">angemeldet</a> sein, um kommentieren zu können.</p> <?php else : ?> <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( $user_ID ) : ?> <p>Angemeldet als <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Von diesem Konto abmelden') ?>">Abmelden »</a></p> <?php else : ?> <p><input type="text" class="textbox" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" /> <label for="author"><small>Name <?php if ($req) _e('(erforderlich)'); ?></small></label></p> <p><input type="text" class="textbox" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" /> <label for="email"><small>E-Mail (wird nicht veröffentlicht) <?php if ($req) _e('(erforderlich)'); ?></small></label></p> <p><input type="text" class="textbox" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" /> <label for="url"><small>Webseite</small></label></p> <?php endif; ?> <!--<p><small><strong>XHTML:</strong> You can use these tags: <?php echo allowed_tags(); ?></small></p>--> <p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p> <p> <input name="submit" type="submit" id="submit" tabindex="5" value="Speichern" /> <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /> </p> <?php do_action('comment_form', $post->ID); ?> </form> <?php echo 'Du möchtest noch keinen Kommentar abgeben, aber über neue Kommentare informiert werden? Dann gebe nachfolgend bitte <br />Deine E-Mail-Adresse ein'; show_manual_subscription_form(); ?> <?php endif; // If registration required and not logged in ?> <?php endif; // if you delete this the sky will fall on your head ?>
und meine fuctions.php so:
PHP
Alles anzeigen<?php if ( function_exists('register_sidebar') ) { register_sidebar(array('name'=>'Linke Sidebar', 'before_widget' => '<li>', 'after_widget' => '</li>', 'before_title' => '<h3>', 'after_title' => '</h3>', )); register_sidebar(array('name'=>'Rechte Sidebar', 'before_widget' => '<li>', 'after_widget' => '</li>', 'before_title' => '<h3>', 'after_title' => '</h3>', )); } // Custom Header Image Support define('HEADER_TEXTCOLOR', ''); define('HEADER_IMAGE', '%s/img/header.jpg'); // %s is theme dir uri define('HEADER_IMAGE_WIDTH', 900); define('HEADER_IMAGE_HEIGHT', 180); define( 'NO_HEADER_TEXT', true ); function theme_admin_header_style() { ?> <style type="text/css"> #headimg { background:#fff url(<?php header_image() ?>) no-repeat center; height: <?php echo HEADER_IMAGE_HEIGHT; ?>px; width: <?php echo HEADER_IMAGE_WIDTH; ?>px; } #headimg * { display:none; } </style> <?php } function theme_header_style() { ?> <style type="text/css"> #splash { background:url(<?php header_image(); ?>) no-repeat center; height:<?php echo HEADER_IMAGE_HEIGHT; ?>px; width:<?php echo HEADER_IMAGE_WIDTH; ?>px; } </style> <?php } if ( function_exists('add_custom_image_header') ) { add_custom_image_header('theme_header_style', 'theme_admin_header_style'); } ?> <?php function list_pings($comment) { $GLOBALS[‘comment’] = $comment; ?> <li id="comment-<?php comment_ID(); ?>" title="Externer Seitenaufruf: <?php comment_author(); ?>"> <?php comment_author_link(); ?> - <?php } ?> <?php add_filter('get_comments_number', 'comment_count', 0); function comment_count( $count ) { if ( ! is_admin() ) { global $id; $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id)); return count($comments_by_type['comment']); } else { return $count; } } ?>
Gruß
Marcus -
Was in der functions.php auf Anhieb falsch ist sind die `anstelle von ' und das < anstelle von <:
PHP
Alles anzeigen<?php function list_pings($comment) { $GLOBALS[[COLOR=Red]'[/COLOR]comment[COLOR=Red]'[/COLOR]] = $comment; ?> <li id="comment-[COLOR=Red]<[/COLOR]?php comment_ID(); ?>" title="Externer Seitenaufruf: [COLOR=Red]<[/COLOR]?php comment_author(); ?>"> <?php comment_author_link(); ?> - <?php } ?> <?php add_filter('get_comments_number', 'comment_count', 0); function comment_count( $count ) { if ( ! is_admin() ) { global $id; $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id)); return count($comments_by_type['comment']); } else { return $count; } } ?>Wenn's dann immer noch nicht geht müssen wir weiter schauen.
-
Hallo Maxe!
Das mit dem lt war mir auch schon aufgefallen...
Er listet die Tackbacks aber immer noch zweimal auf.
Gruß
Marcus -
Kann es an dem nicht geschlossenen li-Tag liegen:
-
Nein, schau dir mal den Quelltext an, dort wird der LI geschlossen.
Hast du irgendwelche Plugins aktiv, die in die Kommentare eingreifen?
Und probierst du es mal testweise nur mit der neueren wp_list_comments() Funtion. Ich glaube nämlich das sich das foreach mit der neuen wp_list_comments() nicht verträgt.PHP
Alles anzeigen<?php // Do not delete these lines if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Bitte diese Seite nicht direkt aufrufen. Danke.'); if (!empty($post->post_password)) { // if there's a password if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?> <p class="nocomments"><?php _e("Dieser Beitrag ist passwortgeschützt. Gib das Passwort ein, um die Kommentare anzuzeigen.."); ?><p> <?php return; } } /* This variable is for alternating comment background */ $oddcomment = 'alt'; ?> <!-- You can start editing here. --> <?php if ($comments) : ?> [COLOR=Red] <?php if ( ! empty($comments_by_type['comment']) ) { ?> <ol class="commentlist"> <?php wp_list_comments('type=comment'); ?> </ol> <?php } ?> <?php if ( ! empty($comments_by_type['pings']) ) { ?> <ol class="pinglist"> <?php wp_list_comments('type=pings&callback=list_pings'); ?> </ol> <?php } ?>[/COLOR] <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post-> comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Die Kommentarfunktion ist deaktiviert.</p> <?php endif; ?> <?php endif; ?> <div class="entry"> <p class="posted"> <?php if ($post->ping_status == "open") { ?> <a href="<?php trackback_url(display); ?>">Trackback URI</a> | <?php } ?> <?php if ($post-> comment_status == "open") {?> <?php comments_rss_link('Kommentare als RSS'); ?> <?php }; ?> </p> </div> <?php if ('open' == $post-> comment_status) : ?> <h3 id="respond">Einen Kommentar schreiben</h3> <?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">angemeldet</a> sein, um kommentieren zu können.</p> <?php else : ?> <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( $user_ID ) : ?> <p>Angemeldet als <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="<?php _e('Von diesem Konto abmelden') ?>">Abmelden »</a></p> <?php else : ?> <p><input type="text" class="textbox" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" /> <label for="author"><small>Name <?php if ($req) _e('(erforderlich)'); ?></small></label></p> <p><input type="text" class="textbox" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" /> <label for="email"><small>E-Mail (wird nicht veröffentlicht) <?php if ($req) _e('(erforderlich)'); ?></small></label></p> <p><input type="text" class="textbox" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" /> <label for="url"><small>Webseite</small></label></p> <?php endif; ?> <!--<p><small><strong>XHTML:</strong> You can use these tags: <?php echo allowed_tags(); ?></small></p>--> <p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p> <p> <input name="submit" type="submit" id="submit" tabindex="5" value="Speichern" /> <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /> </p> <?php do_action('comment_form', $post->ID); ?> </form> <?php echo 'Du möchtest noch keinen Kommentar abgeben, aber über neue Kommentare informiert werden? Dann gebe nachfolgend bitte <br />Deine E-Mail-Adresse ein'; show_manual_subscription_form(); ?> <?php endif; // If registration required and not logged in ?> <?php endif; // if you delete this the sky will fall on your head ?> -
Also Plugins, die direkt in die Kommentare eingreifen nicht.
Nur die Code, der die Mathe-Aufgabe darstellt, und den für die Benachrichtigung.
Das mit dem Code probiere ich jetzt mal einzubauen.
Marcus -
Hallo Maxe!
Danke für Deine Hilfe.
Ich habs jetzt soweit hinbekommen.
Muss nur noch die Ausgabe formatieren. Dann passt es.
Danke nochmal!
Gruß
Marcus -
Ich hole den Beitrag aus der Versenkung. Ich habe von der gleichen Seite der Code eingebaut, und bekomme auch den gleichen Fehler.Trackbacks/Pingbacks werden doppelt angezeigt: http://www.readit.info/buch/64/das-spiel-von-stephen-king/
functions.php
PHP
Alles anzeigen<?php if ( function_exists('register_sidebar') ) register_sidebar(array( 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>', )); // No CSS, just IMG call define('HEADER_TEXTCOLOR', ''); define('HEADER_IMAGE', '%s/images/dimple.jpg'); // %s is theme dir uri define('HEADER_IMAGE_WIDTH', 330); define('HEADER_IMAGE_HEIGHT', 293); define('NO_HEADER_TEXT', true ); function rehtse_admin_header_style() { ?> <style type="text/css"> #headimg { height: <?php echo HEADER_IMAGE_HEIGHT; ?>px; width: <?php echo HEADER_IMAGE_WIDTH; ?>px; } #headimg h1, #headimg #desc { display: none; } </style> <?php } function rehtse_header_style() { ?> <style type="text/css"> #header { background: url(<?php header_image() ?>) no-repeat right; background-position: 460px 2px;} #header { margin: 0 !important; margin:0 0 0 0;padding: 0 0 0 0; height: 299px; width: 899px; } </style> <?php } add_custom_image_header('rehtse_header_style', 'rehtse_admin_header_style'); ?> <?php function list_pings($comment) { $GLOBALS['comment'] = $comment; ?> <li id="comment-<?php comment_ID(); ?>" title="Externer Seitenaufruf: <?php comment_author(); ?>"> <?php comment_author_link(); ?> - <?php comment_date('j. F Y'); ?> <?php } ?> <?php add_filter('get_comments_number', 'comment_count', 0); function comment_count( $count ) { if ( ! is_admin() ) { global $id; $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id)); return count($comments_by_type['comment']); } else { return $count; } } ?>comments.php
PHP
Alles anzeigen<?php // Do not delete these lines if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!'); if (!empty($post->post_password)) { // if there's a password if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) { // and it doesn't match the cookie ?> <p class="nocomments">This post is password protected. Enter the password to view comments.</p> <?php return; } } /* This variable is for alternating comment background */ $oddcomment = 'class="alt" '; ?> <!-- You can start editing here. --> <?php if ($comments) : ?> <h3 id="comments"><?php comments_number('Keine Kommentare', 'Ein Kommentar', '% Kommentare' );?> zu “<?php the_title(); ?>”</h3> <ol class="commentlist"> <?php foreach ($comments as $comment) : if (get_comment_type() == "comment") : ?> <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>"> <?php echo get_avatar( $comment, 32 ); ?> <cite><?php comment_author_link() ?></cite> sagt: <?php if ($comment->comment_approved == '0') : ?> <em>Dein Kommentar muss noch moderiert werden.</em> <?php endif; ?> <br /> <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('j. F Y') ?> um <?php comment_time() ?></a> <?php edit_comment_link('Bearbeiten',' ',''); ?></small> <?php comment_text() ?> </li> <?php /* Changes every other comment to a different class */ $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : ''; ?> <?php endif; endforeach; ?> </ol> <?php foreach ($comments as $comment) : if (get_comment_type() != "comment") : ?> <h3 id="pings">Trackbacks/Pingbacks</h3> <ol class="pinglist"> <?php wp_list_comments('type=pings&callback=list_pings'); ?> </ol> <?php endif; endforeach; ?> <?php else : // this is displayed if there are no comments so far ?> <?php if ('open' == $post->comment_status) : ?> <!-- If comments are open, but there are no comments. --> <?php else : // comments are closed ?> <!-- If comments are closed. --> <p class="nocomments">Kommentare geschlossen.</p> <?php endif; ?> <?php endif; ?> <?php if ('open' == $post->comment_status) : ?> <h3 id="respond">Hinterlasse ein Kommentar</h3> <?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(get_permalink()); ?>">eingeloggt</a> sein um kommentieren zu können.</p> <?php else : ?> <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform"> <?php if ( $user_ID ) : ?> <p>Eingeloggt als <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Ausloggen mit diesem Account">Ausloggen »</a></p> <?php else : ?> <p><input type="text" name="author" id="author" value="<?php echo $comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="author"><small>Name <?php if ($req) echo "(benötigt)"; ?></small></label></p> <p><input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /> <label for="email"><small>E-Mail (wird nicht veröffentlicht) <?php if ($req) echo "(benötigt)"; ?></small></label></p> <p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" /> <label for="url"><small>Webseite</small></label></p> <?php endif; ?> <!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>--> <p><textarea name="comment" id="comment" cols="100%" rows="10" tabindex="4"></textarea></p> <p><input name="submit" type="submit" id="submit" tabindex="5" value="Kommentar absenden" /> <input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" /> </p> <?php do_action('comment_form', $post->ID); ?> </form> <?php endif; // If registration required and not logged in ?> <?php endif; // if you delete this the sky will fall on your head ?>Ich habe ebenfalls versucht den anderen Code zu nutzen, aber da bekam ich weder Kommentare, noch Pingbacks angezeigt. Welchen Denkfehler hab ich da?
-
*schieb*
Jemand eine Lösung?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!