私のブログのコメントアバター画像タグに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'), "\">";
get_avatar
フィルタを使用して、画像タグの出力を変更したり、HTML属性を追加したりできます。
return apply_filters( 'get_avatar', $avatar, $id_or_email, $size, $default, $alt );
$avatar : Image tag for the user's avatar.
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で 。
実際にはアバターのHTMLマークアップのためのフィルターオプションはありません。しかし、私はあなたが奇妙な方法でそれをすることができると思います。私はコードをテストしませんでしたが、あなたはこれを一度試すことができます:
get_avatar($comment, 50, vol_random_image() , "' nopin='nopin");