web-dev-qa-db-ja.com

Get_avatarにカスタムHTML属性を追加する方法

私のブログのコメントアバター画像タグにPinterestのnopin = "nopin" HTML属性を追加しようとしています。これは、各コメントでアバターを呼び出すために使用している関数です。

get_avatar($comment, 50, vol_random_image())

コメント投稿者がGravatarを持っていない場合、vol_random_image()は配列から画像を選択するだけです。

Get_avatarには$ alt属性があることを知っていますが、それはaltタグを設定するだけなのですよね?このカスタムHTMLタグを追加する方法を教えてください。

機能の完全なコード:

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

get_avatar フィルタを使用して、画像タグの出力を変更したり、HTML属性を追加したりできます。

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

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

回答

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


説明

get_avatar関数を見てください:

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

この関数を見ると、最後に許可されている parameter$argsであることがわかります。これにより、$id_or_email$size$default、および$alt以外のすべての値を変更できます。


以下に利用可能な追加の引数があります codexページにリストされています

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

    そして、extra_attrパラメータは次のように文書化されています:

extra_attr
string )(オプション)IMG要素に挿入するHTML属性。消毒されていません。
デフォルト:空。


実装方法:

残念ながら、私が見つけた限りでは、extra_attrまたは上記のその他の追加の引数の使用法を実装するチュートリアルはWeb上にありません。さらに、 WPSEの質問が1つだけ があり、これについて言及または質問することさえありました。あなたが私のような人なら、ほとんどのドキュメンテーション(私が上に投稿したようなもの)は、例を添えない限り役に立たない...

コメントリストテンプレートでこれを実装する方法の例を次に示します:

  <?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 );
   ?>

上記は、以下の属性を追加するコメント作成者アバターimgタグを出力します:

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

この例では、Pinterestのアバター画像の ピン留めを無効にする に必要な属性を指定します。さらに、特定の画像(この場合はコメント画像)のスタイルを設定する場合に追加のクラスを追加する方法も示します。


またはget_avatar filter を使用して、必要に応じてhtmlコード全体をフィルタリングできます。多くの場合、これはプラグイン作成者にとって望ましいアプローチです。

これはあまりよく文書化されておらず、多くの人が知りたい機能のように見えるので、投稿、ウィジェット、メニューなどのショートコードでこれを実装できるプラグインを作成することにしました。ダウンロードしてください ここではGithubで

1
Bryan Willis

実際にはアバターのHTMLマークアップのためのフィルターオプションはありません。しかし、私はあなたが奇妙な方法でそれをすることができると思います。私はコードをテストしませんでしたが、あなたはこれを一度試すことができます:

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