it-swarm.com.de

Wie füge ich get_avatar ein benutztes HTML-Attribut hinzu?

Ich versuche, das HTML-Attribut nopin = "nopin" von Pinterest zu den Bild-Tags des Kommentar-Avatars in meinem Blog hinzuzufügen. Hier ist die Funktion, mit der ich den Avatar bei jedem Kommentar anrufe:

get_avatar($comment, 50, vol_random_image())

vol_random_image () wählt nur ein Bild aus einem Array aus, wenn der Kommentator kein Gravatar hat.

Ich weiß, get_avatar hat ein $ alt-Attribut, aber das setzt nur ein alt-Tag, oder? Wie würde ich vorgehen, um dieses benutzerdefinierte HTML-Tag hinzuzufügen?

Vollständiger Code der Funktion:

echo "<li ", comment_class(), " id=\"li-comment-", comment_ID(), "\">\n
\t<article id=\"comment-", comment_ID(), "\" class=\"comment\">\n
\t\t<footer>\n
{$tab3}<div class=\"comment-author vcard\">\n
{$tab3}\t<div class=\"comment-avatar\">\n",
get_avatar($comment, 50, vol_random_image()),
"{$tab3}\t</div>\n
{$tab3}</div>\n" .
(($comment->comment_approved == '0') ? 
    sprintf("{$tab3}<em>") . __('Your comment is awaiting moderation.', 'volatyl') . sprintf("</em><br />\n") : 
'') .
"{$tab3}<div class=\"comment-meta commentmetadata\">\n{$tab3}\t" .
sprintf('<cite class="fn">%s</cite>', get_comment_author_link()) .
"\n{$tab3}\t<div class=\"comment-date\">\n
{$tab3}\t\t<a href=\"", esc_url(get_comment_link($comment->comment_ID)), "\"><time pubdate datetime=\"", comment_time('c'), "\">";
3
Thomas Frank

Mit dem Filter get_avatar können Sie die Ausgabe des Image-Tags ändern und Ihr HTML-Attribut hinzufügen

return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );

$avatar : Image tag for the user's avatar.
0
Brad Dalton

Antworten

get_avatar($comment, 50, vol_random_image(), '', array('extra_attr' => 'nopin="nopin"'));


Erläuterung

Sehen Sie sich die Funktion get_avatar an:

echo get_avatar( $id_or_email, $size, $default, $alt, $args );

Wenn Sie sich diese Funktion ansehen, werden Sie feststellen, dass der letzte Parameter allowed ist $args), mit dem Sie im Wesentlichen alle Werte außer $id_or_email, $size, $default und $alt ändern können.


Nachfolgend sind die verfügbaren zusätzlichen Argumente aufgeführt auf der Codex-Seite aufgeführt :

  • size
  • height
  • width
  • default
  • force_default
  • rating
  • scheme
  • class
  • force_display
  • extra_attr

    Und der Parameter extra_attr ist wie folgt dokumentiert:

extra_attr
( String ) (optional) HTML-Attribute, die in das IMG-Element eingefügt werden sollen. Wird nicht bereinigt.
Standard: leer.


So implementieren Sie:

Leider gibt es meines Erachtens keine Tutorials im Web, die die Verwendung von extra_attr oder eines der anderen oben aufgeführten zusätzlichen Argumente implementieren. Darüber hinaus gab es nur eine WPSE-Frage Ich habe festgestellt, dass auch nur Erwähnungen oder Fragen dazu gestellt werden. Wenn Sie etwas wie ich sind, ist die meiste Dokumentation (wie das, was ich oben gepostet habe) für Sie nutzlos, sofern sie nicht von begleitet wird ein Beispiel...

Hier ist ein Beispiel, wie Sie dies in Ihre Kommentarlistenvorlage implementieren können:

  <?php 
        $atts = array( 
                       'extra_attr' => 'nopin="nopin"',
                       'class' => 'media-object img-rounded'                  
        );
        if ( 0 != $args['avatar_size'] ) echo get_avatar( $comment, $args['avatar_size'], '', '', $atts );
   ?>

Das obige würde das Kommentar-Avatar-img-Tag ausgeben, das die folgenden Attribute hinzufügt:

nopin="nopin"
class="media-object img-circle"

In diesem Beispiel haben Sie die gewünschten Attribute für Deaktivieren des Fixierens der Avatarbilder auf Pinterest). Außerdem wird gezeigt, wie Sie zusätzliche Klassen hinzufügen, wenn Sie bestimmte Bilder formatieren möchten (in diesem Fall die Bilder kommentieren).


Alternativ, Sie können den get_avatar filter verwenden, um den gesamten HTML-Code zu filtern, falls gewünscht. Dies ist häufig der gewünschte Ansatz für Plugin-Autoren.

Angesichts der Tatsache, dass dies nicht allzu gut dokumentiert ist und eine Funktion zu sein scheint, die viele Leute gerne kennen würden, habe ich beschlossen, ein Plugin zu erstellen, mit dem Sie dies in einem Shortcode für Ihre Posts, Widgets, Menüs usw. implementieren können heruntergeladen werden hier auf Github .

1
Bryan Willis

Derzeit gibt es keine Filteroption für Avatar-HTML-Markups. Aber ich denke, dass Sie es auf seltsame Weise tun können. Ich habe den Code nicht getestet, aber Sie können dies einmal versuchen:

get_avatar($comment, 50, vol_random_image() , "' nopin='nopin"); 
0