suche mir den Wolf, finde aber die wohl popelig einfache Lösung nicht. Es geht um die Blogkommentare hier. Möchte gerne den Namen des Kommentierenden von einem gegebenenfalls gesetzten Link zur Webseite des Kommentierenden trennen. Begründung siehe im Folgeartikel.
Bisher steht beim Namen des Kommentierenden:
Robert Basic
Funktion dazu: comment_author_link()
In Zukunft soll stehen:
Robert Basic @
oder
Robert Basic [ohne „@“, wenn kein Backlink gesetzt]
Mit der Funktion
php comment_author_url_link(‚@‘, “, “);
klappt das nur zum Teil, denn wenn der Kommentierende keinen Backlink gesetzt hat, erscheint das „@“-Zeichen dennoch und verlinkt zudem dummerweise auf den Blogartikel selbst, was Schwachsinn ist. Hätte erwartet, dass nix erscheint, kein @ und kein Link, wenn der Backlink leer ist. Könnt Ihr Euch aktuell in den Kommentaren anschauen, solange die Funktion comment_author_url_link noch aktiv ist.
Neue Stellenangebote
![]() |
Growth Marketing Manager:in – Social Media GOhiring GmbH in Home Office |
|
![]() |
Social Media Manager (m/w/d) IHK - Industrie- und Handelskammer zu Berlin in Berlin |
|
![]() |
Content Creator (Social Media) (m/w/d) pro.Di GmbH in Schömberg, Renningen |
Hat jemand eine Lösung?
Update: In den Kommentaren findet Ihr einige Lösungsansätze, mit dem von Reiffix hatte es geklappt. Ist allerdings keine sehr pflegeleichte Lösung, da sie nicht im Template verankert wird, sondern im Core von WordPress, was bei Updates natürlich etwas Anpassung bedarf. Siehe dazu die Textdatei
In der Datei wp-includes/comment-templates.php wird eine Zeile angepasst:
– aus $return = „[a href=’$url‘ rel=’external nofollow‘]$author[/a]“;
– wird $return = „$author[a href=’$url‘ rel=’external nofollow‘]@[/a]“;
Zweite Lösung, die keine Anpassung bei WordPress-Updates bedarf, da sie lediglich im Design-Template hinterlegt wird, und zwar in der Comments.php: Siehe Codesnippet. Danke, paddya!
Solltet Ihr die Lösung von paddya nutzen, beachtet bitte, dass es ein kleines, aber schnell lösbares Problem mit dem Plugin Easy Gravatars (1.2) geben kann. Die Pics der User werden dann nämlich nicht mehr angezeigt. Dazu im Optionsmenue des Plugins den Schalter „API Hook“ auf „Comment Text“ umlegen. Siehe Kommentar
Warum das Ganze? Begründung steht im Folgeartikel
hab lange nichts mehr in php gemacht und hab auch kein wordpress, aber ich würde sowas versuchen:
if (comment_author_link() != “ „) {
comment_author_url_link(„@‘, „?, „?);
}
also einfach eine if-Anweisung die überprüft ob der Link gesetzt wurde und dann den entsprechenden link mit dem @ setzt.
Gruß Christian
Kann man hier einen code-tag setzen?
/edit: nein, kann man nicht *g
Dann halt Kontaktformular :p
@Christian, das hatte ich schon, aber der Rückgabewert ist stets not empty
@Marc, ne, leider nicht
Versuchs hier mit:
if(get_comment_author_url()) {
echo „<a href="" . get_comment_author_url() . "">@</a>";
}
k, probier ich
Was ist denn mit…
comment_author();
if(comment_author_link() != „“) {
a href=“php? comment_author_link();?“@ /a
}
PHP- und html klammern natürlich noch setzen 😉
Hey rob!
Hier die Lösung
geh in die wp-includes/comment-template.php und suche dort nach:
function get_comment_author_link() {
/** @todo Only call these functions when they are needed. Include in if… else blocks */
$url = get_comment_author_url();
$author = get_comment_author();
if ( empty( $url ) || ‚http://‘ == $url )
$return = $author;
else
$return = „$author„;
return apply_filters(‚get_comment_author_link‘, $return);
}
ersetze es hiermit:
function get_comment_author_link() {
/** @todo Only call these functions when they are needed. Include in if… else blocks */
$url = get_comment_author_url();
$author = get_comment_author();
if ( empty( $url ) || ‚http://‘ == $url )
$return = $author;
else
$return = „$author@„;
return apply_filters(‚get_comment_author_link‘, $return);
}
Das wars..
liebe Grüße
P.S. Der wandelt das immer um, check deine Mails Rob dann ist es richtig, habs getestet 😉
comment_author_url() ist die korrekte Funktion 😉
Code sieht also so aus: http://nopaste.php-q.net/41375 (untested)
Edit: Zur Not statt comment_author_url() einfach echo get_comment_author_url(); nehmen.
Jetzt hast du anscheinend zwei mal comment_author_url_link(); drin. Hast du meinen Edit nicht gesehen?
doch hatte ich, Lösung kommt gleich oben im Update (bei Deiner Lösung gab es ein Prob mit dem Rückgabewert anscheinend)
Jetzt nur noch ein Leerzeichen dazwischen… 😉
Meine klappt 100% 😉
schade das ich es hier nicht darstellen kann, hoffe du hast die mail aber bekommen
gruß
Ah, I see 🙂 Jop, du brauchst einmald get_comment_author_url() im if und einmal comment_author_url() zur Ausgabe. Sorry, Denkfehler von mir (nächstes Mal vorher testen ;))
Chris Reifix: Und beim nächsten Update ist alles futsch 😉
Edit: Hier die richtige, saubere Lösung: http://nopaste.php-q.net/41377
@paddya, solltest Du Deinen angepassten Code hinterlegen, kann ich diese Lösung auch vorstellen dann;)
@Reifix: Siehe Artikel-Update oben, hab den Code angehangen
Siehe Edit (#13) 🙂
Danke, nur mit 2f reiffix 😉
Soll wohl SEO-Spam vermeiden oder?
Genau: http://www.sistrix.de/news/782-gruesse-an-bernd-sonnensegel.html
Kam mir gleich in den Sinn, als ich die Überschrift gelesen habe…
so, paddya, Lösung getestet, klappt auch prima jetzt. Siehe zweites Update im Artikel.
Frage: Performancetechnisch geben sich beide Lösungen nix?
Sollten genau gleich schnell sein. Meine könnte einen Tick schneller sein, da z.B. die Überprüfung auf comment_author_url() == ‚http://‘ fehlt. Aber im Endeffekt dürfte der Unterschied im Microsekunden-Bereich liegen.
Mich würde ja sehr interessieren, warum du den Link vom Namen trennen möchtest?
Wegen Rankings? Oder einfach nur so?
Du hast doch bestimmt damit etwas im Sinn, oder?
komisch, ist Gravatar.com dead oder haben wir nun warum auch immer die Gravatar-Funktion gekillt? Hab darin an sich nix gedreht. Läuft über das Plugin Easy Gravatar http://wordpress.org/extend/plugins/easygravatars/
@Stefan, kommt gleich, erstmal alles glattziehen;)
Ich vermute, die Funktion greift auf einen Plugin-Hook in comment_author_url_link() zu. Wenn du willst, guck ichs mir grade mal an.
sprich, die Reihenfolge der Funktionsabarbeitung sollte nun ein Problem darstellen? Verstehe ich aber nicht, da doch der Scope beider Funktionen (der Check ob Link leer und Easy Gravatar) doch völlig separat laufen?
Ich verwende zZt Deine Lösung mit der Funktion comment_author_url(). Comment-Template.php ist wieder glattgezogen in wp-includes
Wie läuft die Einbindung der Gravatars bei dir? Über ein „echo eg_gravatar($text);“ im Comment-Template?
Edit: Ah, I see. Das wird automatisch angehangen. Mal gucken, inwiefern man das reparieren kann.
nope, easy gravatar erwartet keine Angabe im Template.
Habe zwecks Test den paddya-Code raus und wieder die alte Funktion aktiviert comment_author_link() = Gravatar erscheint.
Crazy
Hier:
„[…]and you can select to attach the gravatar to either the comment author link, or the text of the comment. “
Wähle im Plugin-Menü mal, dass der/das Gravatar an den Comment-Text angehangen werden soll. Evtl. muss man dann aber das CSS entsprechend anpassen.
Problem ist, dass standardmäßig „get_comment_author_link“ als Hook verwendet wird. Die Funktion wird aber in meiner Lösungsvariante gar nicht mehr aufgerufen.
so, habe nun folgendes gemacht:
1. easy gravatars upgedatet auf allerneueste Version
2. die bietet nämlich, siehe da, eine spezielle Option an:
API Hook to „Comment Text“ or „Comment Author Link“
3. Habe „Comment Text“ gewählt
4. den paddya-Code wieder in die comments.php
und es klappt mit der Anzeige der Gravatare
Würde ich den API Hook auf „Comment Author Link“ setzen, werden die Gravatare nicht mehr angezeigt.
Tag gerettet, würde ich sagen 🙂
yep:)) Cool. Habe Deinen Comment 26 gerade in Moderation gelesen, hat sich überschnitten. Interessant aber, dass Easy Gravatar dermaßen von den Funktionen abhängt, die man im Template hinterlegt hat…
Das sind leider die Nachteile dieser „One-Click-and-it-works“-Lösungen. Die funktioneren meist nur mit Themes, die dem Standard-Theme in Sachen Struktur sehr ähnlich sind.
scheint ja zu klappen!
im wp-de-blog wird das sogar noch so gelöst, dass der link nicht anklickbar ist, aber vollständig gezeigt wird. (nicht so ganz mein ding)
[…] die technische Lösung gefunden ist, wie man den Namen des Kommentierenden in einem Blog-Kommentar vom Link zur Homepage […]
[…] Blog gibts sicherlich auch einigen guten Pagerank abzugreifen. Um das zu verhindern hat Robert um Hilfe gebeten. Und hey ich konnte helfen. Um den Link vom Autor zu trennen macht folgendes: 1. Öffne […]
Wenn dir die interne Verlinkung wichtig ist, dann würde ich noch eine Ausnahme für den Admin anlegen, dann ist „Robert Basic“ immer auch der Linktext und bei allen anderen nur @. 😉
das ist für mich egal, aber danke für den Vorschlag
die idee (samt anleitung) hatte ich auch schon. hat aber den letzten redesign nicht überlebt:
http://www.lopsta.com/2008/01/22/codeaenderungen-fuer-meine-comment-modifikation/
[…] basic thinking blog | wordpress: name von link trennen (tags: photography wordpress culture howto kommentar via:mento.info) […]
[…] mit den Gedanken über irgendwelche follow-oder-doch-nicht-Plugins, die Ausnahmen zulassen, den Namen vom Link trennen oder einem Buntstift das Fliegen […]
Snapshots der Blogs anzeigen…
Neulich habe ich mich bei Blogoscoop.net angemeldet, als ich auf der Seite meines Blog in Blogoscoop war, habe ich bei dem Vorschaubild der Webseiten den Copyrighthinweis http://websnapr.com gesehen, und habe gleich auf der Seite nachgeschaut, wofü…
[…] danke an Ute und Robert für die ein oder andere Idee (auch wenn die Umsetzung teilweise nicht so wollte). Wenn der […]
Ich glaub sogar, ich habe eine viel leichtere Variante gefunden, einfach diesen Code eingeben, ich habs rausgefunden, als ich ein neues WordPress Plugin geschrieben hab. Hier der Code:
http://nopaste.php-q.net/52491
[…] Heute habe ich daher ein weitere Spamabwehr in den Kommentaren eingebaut, die eben diese Keywordspammer abhalten soll. Ich habe nun den Namen des Kommentators von einem gesetzten Backlink getrennt. Der Backlink enthält nun einen einheitlichen und neutralen Linktext. Wer dies ebenfalls in seinem Blog umsetzen möchte, dem empfehle ich zur Verwendung den folgenden php-Code unter nopaste.php-q.net/41377. Weitere Infos hierzu kann man bei Robert nachlesen: WordPress: Name von Link trennen. […]