将媒体插入到编辑器中时添加class=“media_type”

时间:2015-07-08 作者:Pipo

我正在寻找一种方法来编辑当用户选择添加媒体时插入编辑器中的链接。目标是在链接中添加一个具有媒体类型(pdf)的类。

我知道如何获取mime类型,但我不确定在插入链接之前使用哪个钩子来检索链接。你能给我指一下正确的方向吗?

谢谢

3 个回复
最合适的回答,由SO网友:Pipo 整理而成

多亏了amritanshu和wycksgithub\'s code, 对于需要在附件url中添加媒体类型的类,然后再将其插入编辑器的用户,以下是解决方案:

if ( ! function_exists( \'epc_add_class_pdf\' ) ) :

    function epc_add_class_pdf( $html, $id ) {

        $attachment = get_post( $id );
        $mime_type = $attachment->post_mime_type;

        // I only needed PDF but you can use whatever mime_type you need
        if ( $mime_type == \'application/pdf\' ) {
            $src = wp_get_attachment_url( $id );
            $html = \'<a class="pdf" href="\'. $src .\'">\'. $attachment->post_title .\'</a>\';
        }

        return $html;
}
endif;
add_filter(\'media_send_to_editor\', \'epc_add_class_pdf\', 20, 3);

SO网友:birgire

下面是一个较短的方法(PHP 5.4+):

add_filter( \'media_send_to_editor\', function( $html, $send_id, $attachment )
{
  $class = wp_check_filetype( $attachment[\'url\'] )[\'ext\'];
  return str_ireplace( \'<a href\', sprintf( \'<a class="%s" href\',$class ? $class : \'unknown\' ), $html );
}, 10, 3 );
我们从第三个输入参数中获取附件的信息。

我们还可以使用mime类型数据,从wp_check_filetype(), 而不是扩展。

SO网友:terminator

This is not the answer but just the hint.

media_send_to_editor 应该是帮助你的钩子。不知道是怎么回事,但在寻找我的问题时遇到了这个问题

我会发表评论,但仍差4分,因此无法发表评论

祝你一切顺利

结束