IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    为Gravatar头像添加ALT属性

    知更鸟发表于 2016-12-10 05:26:55
    love 0

    为Gravatar头像添加ALT属性

    图片ALT属性不仅有利于搜索引擎索引图片,而且当图片无法加载的时候,会显示图片的ALT信息。WordPress文章插入图片时可以在“替代文本”中填写ALT信息,但评论中的大量Gravatar头像一般主题都没有ALT属性,其实WP以为我们预设了Gravatar头像ALT属性参数。

    查看WP官网 Codex  get avatar  默认的可选参数:

    1. <?php echo get_avatar( $id_or_email, $size, $default, $alt, $args ); ?>

    其中:$alt 就是 alt可选参数

    打开主题评论模板,找到类似这句:

    1. <?php echo get_avatar( $comment, 64 ); ?>

    替换为:

    1. <?php echo get_avatar( $comment, 64, '', get_comment_author() ); ?>

    将评论者名称作为ALT属性。

    如果你的主题调用评论模模块使用的函数是:

    1. wp_list_comments();

    暂时在官网上还没找到用该函数添加ALT属性的参数(貌似WordPress默认主题ALT也是空的),只能按下面的代码拆分这个函数,然后修改。

    展开代码

    1. function mytheme_comment($comment, $args, $depth) {
    2.     if ( 'div' === $args['style'] ) {
    3.         $tag       = 'div';
    4.         $add_below = 'comment';
    5.     } else {
    6.         $tag       = 'li';
    7.         $add_below = 'div-comment';
    8.     }
    9.     ?>
    10.     <<?php echo $tag ?> <?php comment_class( emptyempty( $args['has_children'] ) ? '' : 'parent' ) ?> id="comment-<?php comment_ID() ?>">
    11.     <?php if ( 'div' != $args['style'] ) : ?>
    12.         <div id="div-comment-<?php comment_ID() ?>" class="comment-body">
    13.     <?php endif; ?>
    14.     <div class="comment-author vcard">
    15.         <?php if ( $args['avatar_size'] != 0 ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
    16.         <?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>
    17.     </div>
    18.     <?php if ( $comment->comment_approved == '0' ) : ?>
    19.          <em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></em>
    20.           <br />
    21.     <?php endif; ?>
    22.     <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ); ?>">
    23.         <?php
    24.         /* translators: 1: date, 2: time */
    25.         printf( __('%1$s at %2$s'), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)' ), '  ', '' );
    26.         ?>
    27.     </div>
    28.     <?php comment_text(); ?>
    29.     <div class="reply">
    30.         <?php comment_reply_link( array_merge( $args, array( 'add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
    31.     </div>
    32.     <?php if ( 'div' != $args['style'] ) : ?>
    33.     </div>
    34.     <?php endif; ?>
    35.     <?php
    36.     }

    如果你的主题添加修改了默认的头像调用方式,比如使用CN或者SSl方式调用,该方法将无效。

    参考:

    https://codex.wordpress.org/Function_Reference/wp_list_comments

    https://codex.wordpress.org/Function_Reference/get_avatar

    https://codex.wordpress.org/Plugin_API/Filter_Reference/get_avatar



沪ICP备19023445号-2号
友情链接