Ermitteln Sie den Safari-Desktop-Browser und schließen Sie die Erkennung in einen Shortcode ein

Etwas von einem organisierten Durcheinander. Ich schütze meine mp3 / ogg-Dateien vor direktem Zugriff, indem ich sie über eine PHP-Datei diene. Ich hatte große Probleme mit der Bereitstellung von Audio über PHP auf mobilen Geräten. Daher installierte ich Mobile_Detect, um die direkte Audio-URL für mobile Benutzer und die PHP-URL für Desktop-Benutzer konditionell bereitzustellen. Ich habe shortcodes in functions.php erstellt

include_once( get_stylesheet_directory() . '/Mobile_Detect.php'); //ISMOBILE SHORTCODE add_shortcode( 'ismobile', 'ismobile_shortcode' ); function ismobile_shortcode( $atts, $content = null ) { $detect = new Mobile_Detect(); if( $detect->isMobile() ) { return do_shortcode($content); } else { return '';} } //ISNOTMOBILE SHORTCODE add_shortcode( 'isnotmobile', 'isnotmobile_shortcode' ); function isnotmobile_shortcode( $atts, $content = null ) { $detect = new Mobile_Detect(); if( !$detect->isMobile() ) { return do_shortcode($content); } else { return '';} } 

Jetzt, wenn ich einen Audio-Player in einem Post habe, mache ich 2 Instanzen davon in jeden Shortcode eingewickelt. Mobile Benutzer sehen den Audioplayer, der mit der direkten Audio-URL verknüpft ist, Desktopbenutzer sehen den mit dem PHP-Skript verknüpften.

Alles funktioniert gut, außer für den Safari-Desktop-Browser . Der Audio Player sucht nicht und die Endzeit zeigt NaN: NaN. Seit dem Googeln des Problems scheint dies seit 2010 ein Problem mit Safari und der Bereitstellung von Audio über PHP zu sein.

Ich dachte mir, wenn ich den Safari Desktop Browser finden könnte, kann ich ihn in meinen “ismobile” shortcode einbinden, so dass der echte Audio Link an Safari Desktop Benutzer gesendet wird. Sinn ergeben?

Ich habe dieses https://stackoverflow.com/a/9851769/1131465 gefunden, aber ich weiß nicht, wie ich es für meinen speziellen Fall implementieren soll.

EDIT: Mit Vinods Antwort sind dies meine neuen Shortcode-functionen, die den Safari-Desktop erkennen:

 include_once( get_stylesheet_directory() . '/Mobile_Detect.php'); //ISMOBILE SHORTCODE add_shortcode( 'ismobile', 'ismobile_shortcode' ); function ismobile_shortcode( $atts, $content = null ) { $detect = new Mobile_Detect(); global $is_safari; if ( $detect->isMobile() ) { return do_shortcode($content); } elseif ( $is_safari ) { return do_shortcode($content); } else { return '';} } //ISNOTMOBILE SHORTCODE add_shortcode( 'isnotmobile', 'isnotmobile_shortcode' ); function isnotmobile_shortcode( $atts, $content = null ) { $detect = new Mobile_Detect(); global $is_safari; if( !$detect->isMobile() && !$is_safari ) { return do_shortcode($content); } else { return '';} } 

Solutions Collecting From Web of "Ermitteln Sie den Safari-Desktop-Browser und schließen Sie die Erkennung in einen Shortcode ein"

Sie können die WordPress-globale Variable $ is_safari wie folgt verwenden, um festzustellen, ob der Browser ein Safari-Browser ist.

 global $is_safari; if ( $is_safari ) { // This is safari browser } 

Um festzustellen, ob es sich bei dem Browser um einen Safari-Desktop-Browser handelt, können Sie die folgenden Bedingungen verwenden.

 global $is_safari; if ( ! wp_is_mobile() && $is_safari ) { // This is desktop safari browser }