如何将自定义的HTML属性添加到GET_VAVALOTA?

时间:2014-08-07 作者:Thomas Frank

我正在尝试将Pinterest的nopin=“nopin”HTML属性添加到我博客上的评论头像图像标签中。下面是我在每条评论上调用虚拟形象的功能:

get_avatar($comment, 50, vol_random_image())
vol\\u random\\u image()仅在评论者没有Gravatar的情况下从数组中选择图像。

我知道get\\u 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 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

您可以使用get_avatar 筛选以修改图像标记的输出并添加HTML属性

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

$avatar : Image tag for the user\'s avatar.

SO网友:Bryan Willis

答案

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.

以下是可用的其他参数listed on the codex page:

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

    extra_attr 参数记录如下:
extra_attr
  (string) (可选)要插入IMG元素的HTML属性。未消毒
  ;默认值:空。

<小时>

How to implement:

不幸的是,据我所知,在web上没有实现extra_attr 或上述任何其他附加参数。此外,还有only one WPSE question 我发现甚至有人提到或询问过这些。如果你像我一样,大多数文档(如我上面发布的内容)对你来说都是无用的,除非附有一个示例。。。

一零

  <?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"

此示例为您提供了所需的属性disable pinning Pinterest上的头像图像。此外,它还显示了如何添加额外的类,以便在需要为某些图像(在本例中为注释图像)设置样式时使用。

或者,您可以使用get_avatar filter 如果需要,可以过滤整个html代码。这通常是插件作者想要的方法。

鉴于这并没有很好的文档记录,而且似乎是很多人都想知道的一个功能,我决定创建一个插件,让您在帖子、小部件、菜单等的短代码中实现这一点。它可以下载here on Github.

SO网友:Chinmoy Kumar Paul

实际上,没有针对化身HTML标记的过滤器选项。但我认为你可以用奇怪的方式来做。我没有测试代码,但您可以尝试一次:

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

结束