it-swarm.com.de

Wie kann ich den Shortcode [video] abrufen, um Parameter für Abfragezeichenfolgen zuzulassen?

Verwenden von WordPress 4.4.2 (neueste Version zum Zeitpunkt des Schreibens)

Ich versuche, den Shortcode [video] zu verwenden, um ein Video auf meiner Website anzuzeigen. Wenn ich eine URL mit dem filename.mp4 ende, funktioniert das einwandfrei:

[video src="http://example.com/filename.mp4"]

wenn ich jedoch einen Querystring-Parameter am Ende der URL hinzufüge, wird der Video-Player nicht angezeigt. Stattdessen wird mir nur ein Link zur URL angezeigt:

[video src="http://example.com/filename.mp4?type=0"]

Ich habe versucht, das Attribut mp4 zu verwenden, und es führt zu demselben Ergebnis.

Wie erhalte ich den Shortcode [video], um Querystring-Parameter in den Attributen src oder mp4 zuzulassen?

1
Derick Bailey

Sie haben zwei Möglichkeiten.

Entweder filtern Sie Ihre gültigen Videoerweiterungen als @birgire empfohlen.

Ich erinnere mich an ein ähnliches Problem mit dem Audio-Shortcode hier .

Dort habe ich eine Problemumgehung gefunden, indem ich die leere Audio-Erweiterung zugelassen habe.

Sie könnten etwas Ähnliches mit den Video-Erweiterungen versuchen. Hier ist ein Demo-Plugin:

/**
 * Allow the empty video extension to support GET parameters
 */
add_filter( 'wp_video_extensions', function( $ext )
{
    $ext[] = '';
    return $ext;
} );

Sie sollten dies dann nach Bedarf weiter einschränken, z. ähnlich wie beim audio shortcode.

Ich habe die Trac-Tickets durchsucht und diese # 30377 gefunden, an der gearbeitet wird.

Oder filtern Sie den gesamten Shortcode nach Ihren Wünschen mit dem Filter wp_video_shortcode. Z.B. Fügen Sie dem Shortcode type ein weiteres Attribut hinzu, und passen Sie das Ergebnis an Ihre Anforderungen an.

function my_video_shortcode($output, $atts, $video, $post_id, $library ) {
    /**
     * @param string $output  Video shortcode HTML output.
     * @param array  $atts    Array of video shortcode attributes.
     * @param string $video   Video file.
     * @param int    $post_id Post ID.
     * @param string $library Media library used for the video shortcode.
     */
}

Quelle: https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-includes/media.php#L2369

2
iantsch

Ich erinnere mich an ein ähnliches Problem mit dem Audio-Shortcode hier .

Dort habe ich eine Problemumgehung gefunden, indem ich die leere Audio-Erweiterung zugelassen habe.

Sie könnten etwas Ähnliches mit den Video-Erweiterungen versuchen. Hier ist ein Demo-Plugin:

<?php
/**
 * Plugin Name:  GET Parameters In The Video Shortcode
 * Description:  Allow video files with GET parameters in the video shortcode [video]
 * Author:       Birgir Erlendsson (birgire)
 * Plugin URI:   https://wordpress.stackexchange.com/a/220573/26350
 * Version:      1.0.0
 */
add_filter( 'wp_video_shortcode_override', function( $html, $atts )
{
    add_filter( 'wp_video_extensions', 'wpse_video_extensions' );
    return $html;
}, 10, 2 );

function wpse_video_extensions( $ext )
{
    remove_filter( current_filter(), __FUNCTION__ );
    $ext[] = '';
    return $ext;
}

Sie sollten dies dann nach Bedarf weiter einschränken, z. ähnlich wie beim audio shortcode.

Ich habe die Trac-Tickets durchsucht und diese # 30377 gefunden, an der gearbeitet wird.

2
birgire