Etiquetas de audio alrededor de la URL de Mp3 en el contenido

2

Tengo un reproductor de audio que utiliza la siguiente sintaxis para mostrar su reproductor:

[audio src="http://somedomain.com/wp-content/uploads/2013/01/songtitle.mp3"]

LociertoesqueestoybastantesegurodequepuedomostrarlealusuariocómocopiarlaURLypegarlaenlapublicación,pero¿cómopuedobuscarenelcontenidounenlace.mp3yluegoponer[audiosrc=" al frente de él y "] al final?

    
pregunta Josh Rodgers 20.01.2013 - 01:37

1 respuesta

6

Filtre the_content ond / o the_excerpt y reemplace las URL de audio que ya no son un valor de atributo.

Ejemplo:

add_filter( 'the_content', 'wpse_82336_audio_url_to_shortcode', 1 );
add_filter( 'the_excerpt', 'wpse_82336_audio_url_to_shortcode', 1 );

function wpse_82336_audio_url_to_shortcode( $content )
{
    # See http://en.wikipedia.org/wiki/Audio_file_format
    # Adjust the list to your needs
    $suffixes = array (
        '3gp', 'aa3', 'aac', 'aiff', 'ape', 'at3', 'au',  'flac', 'm4a', 'm4b',
        'm4p', 'm4r', 'm4v', 'mpc',  'mp3', 'mp4', 'mpp', 'oga',  'ogg', 'oma',
        'pcm', 'tta', 'wav', 'wma',  'wv',
    );

    $formats = join( '|', $suffixes );
    $regex   = '~
    (([^"\'])|^)            # start of string or attribute delimiter -> match 1
    (https?                 # http or https
        ://                 # separator
        .+/                 # domain plus /
        .+                  # file name at least one character
        \.                  # a dot
        (' . $formats . ')  # file suffixes
    )                       # complete URL -> match 3
    (([^"\'])|$)?           # end of string or attribute delimiter -> match 5
    ~imUx';                 # case insensitive, multi-line, ungreedy, commented

    return preg_replace( $regex, '[audio src=""]', $content );
}
    
respondido por el fuxia 20.01.2013 - 02:21

Lea otras preguntas en las etiquetas