是否验证附件的Alt文本?

时间:2016-05-04 作者:aljabear

添加附件时,如何要求用户输入alt文本?

Alt文本令人惊讶地被掩埋;我能够检索alt文本的唯一方法是通过wp_get_attachment_image() 功能,因此:

add_filter(\'wp_insert_attachment_data\', \'print_metadata\', 10, 2);
function print_metadata( $data, $uncleaned_data ) {

  $attachment_id = $arr[\'ID\'];
  $meta = wp_get_attachment_image($attachment_id);
  error_log($meta);

}
这只会产生一些糟糕的HTML:

<img width="150" height="150" src="http://domain.local/wp-content/uploads/2016/05/cat2-1-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="My alt text" />
因此,我可能会解析这个HTML,然后我可能会尝试抛出某种验证错误。这看起来很粗糙,也可能是糟糕的用户体验(因为它不会用“必需的”星号或任何东西装饰Alt文本字段本身)。

我真希望我能用上面的过滤器,wp_insert_attachment_data, 只需拒绝任何没有alt文本的数组;唉,alt text不在其中$data$uncleaned_data. 或者显然是其他任何地方。

还有其他想法吗?下面是界面的图片:

WP interface

1 个回复
SO网友:Howdy_McGee

每当上传文件时,下面的代码只会运行一次。

我们保留一个数组($image_mimes ) 在可接受的图像mimetype中,我们获得当前的附件mime类型,我们确保所提供的确实是一个图像(因为我们不需要不必要的postmeta混乱我们的表)

  • 我们从附件中获取标题,并将其最初设置为alt文本,然后用户可以根据自己的意愿进行更新(或完全删除):

    function add_image_alt( $attachment_id ) {
        $image_mimes     = array( \'image/jpeg\', \'image/gif\', \'image/png\', \'image/bmp\', \'image/tiff\', \'image/x-icon\' );
        $attachment_type = get_post_mime_type( $attachment_id );
    
        if( in_array( $attachment_type, $image_mimes ) ) {
            $attachment_title = get_the_title( $attachment_id );
            update_post_meta( $attachment_id, \'_wp_attachment_image_alt\', sanitize_text_field( $attachment_title ) );
        }
    }
    add_action( \'add_attachment\', \'add_image_alt\' );
    

  • 相关推荐

    Column Images Showing Gaps

    我正在使用带有Avada主题的Wordpress。在页面顶部,我有一个fusion滑块。下面我将设置一个包含2列的容器。我为每一列插入了一幅图像。我无法解决如何消除图像左右两侧的间隙(我需要它们转到屏幕边缘)以及融合滑块与下方两幅图像之间的间隙。谢谢