Un utente ha chiesto informazioni su Seriously Simple Podcasting di Wordpress

C’è un modo per modificare il collegamento multimediale rimuovendo .mp3?

Un utente ha chiesto 👇

Ehi, il tuo plug-in per podcast è installato su un sito web del cliente e recentemente siamo passati a WPEngine con “LargeFS”, o semplicemente amazon s3 bucket per l’archiviazione dei file. I file mp3 utilizzati per il plug-in vengono caricati automaticamente su S3 e tutto il routing viene eseguito con nginx.

Purtroppo abbiamo scoperto che il lettore multimediale non funziona dopo la migrazione al sito. Si scopre che il plugin “URL virtuali” non funziona con nginx perchĂ© nginx serve file statici (o URL che terminano con .mp3) e non apache. Quindi nessun htaccess, nessun wordpress, nessun routing. Serve a S3 per accedere ai file tramite / wp-content / ei file non esistono effettivamente sul server web.

Devo attivare questi URL:

http://example.org/podcast-download/27363/example.mp3
http://example.org/podcast-player/27363/example.mp3

Allegato:

http://example.org/podcast-download/27363/example
http://example.org/podcast-player/27363/example

Rimuovendo l’estensione credo che il problema sarĂ  risolto, poichĂ© sarĂ  in grado di battere wordpress in quel modo. La mia prossima preoccupazione è come questi “falsi URL” stanno caricando il file. Se prova a caricarli localmente, non funzionerĂ , perchĂ© i file non esistono sullo stesso server.

Questo può essere fatto con il plugin o con qualsiasi azione / filtro?

Vedo che ci sono alcuni possibili filtri come “ssp_episode_download_link”. Ma non ho familiaritĂ  con i podcast e dovrò assicurarmi che la soluzione funzioni non solo sul sito web del cliente, ma anche su itunes.

Grazie per qualsiasi informazione!

Questo argomento è stato modificato 3 anni, 1 mese fa da. Questo argomento è stato modificato 3 anni, 1 mese fa da. Questo argomento è stato modificato 3 anni, 1 mese fa da.

Lanciatore di thread

(@radgh)

3 anni, 1 mese fa

Sono riuscito a farlo funzionare con un piccolo plugin che sostituisce gli URL, come la mia idea originale.

http://example.org/podcast-player/27363/example.mp3

Allegato:

http://example.org/podcast-download/27363/example_._mp3

Per fortuna, questo URL ti reindirizza al file multimediale corretto senza alcuno sforzo aggiuntivo. Anche il monitoraggio sembra funzionare.

L’unico inconveniente è che il collegamento al lettore audio non è stato convertito automaticamente, quindi ho copiato quel lettore audio e l’ho usato direttamente in “aa_ssp_audio_shortcode_params”. Ciò significa fondamentalmente che invece di un lettore audio nero a tema WordPress, ottieni il lettore predefinito del browser (che è grigio in chrome).

Ecco il plugin, mettilo in un file php nella tua cartella del plugin e poi attivalo:

<?php
/*
Plugin Name: Seriously Simple Podcasting - NGINX
Description: This plugin fixes the "virtual URLs" generated by S.S.P. by removing the .mp3 extension of audio files. This fix resolves routing issues in when NGINX is used to serve static resources.
Author: Radley Sustaire
Author URI: https://radleysustaire.com/
*/

/**
 * Converts "example.mp3" into "example_._mp3" which is sufficient for the file to skip nginx, but WordPress still redirects properly.
 *
 * @param $link
 *
 * @return mixed
 */
function aa_ssp_remove_mp3_ext( $link ) {
	// Check length of extension because on 2-3 length extensions will be unfurled
	$replaces = array(
		'.mp3' => '_._mp3',
		'.wav' => '_._wav',
		'.mp4' => '_._mp4'
	);
	
	$link = str_replace( array_keys($replaces), array_values($replaces), $link );
	
	return $link;
}
add_filter( 'ssp_episode_download_link', 'aa_ssp_remove_mp3_ext', 20 );
add_filter( 'ssp_feed_item_enclosure', 'aa_ssp_remove_mp3_ext', 20 );

/**
 * For replacing the download link generated by ssp
 *
 * @param $link
 *
 * @return mixed
 */
function aa_ssp_modify_download_link( $link ) {
	return aa_ssp_remove_mp3_ext( $link );
}
add_filter( 'ssp_episode_download_link', 'aa_ssp_modify_download_link', 20 );

/**
 * For replacing other meta keys of ssp, primarily the "download file" and "play in new window" links.
 *
 * @param $meta
 *
 * @return mixed
 */
function aa_ssp_modify_meta_urls( $meta ) {
	$keys_to_replace = array(
		'link',
		'new_window'
	);
	
	foreach( $meta as $k => $v ) {
		if ( in_array($k, $keys_to_replace) ) {
			$meta[$k] = aa_ssp_remove_mp3_ext( $v );
		}
	}
	
	return $meta;
}
add_filter( 'ssp_episode_meta_details', 'aa_ssp_modify_meta_urls', 20 );

/**
 * Makes the shortcode embed an audio player. When using the "example_._mp3" format WordPress does not treat it as an audio file and does not put it into a media player.
 *
 * @param null $player
 * @param null $srcFile
 * @param null $episode_id
 *
 * @return null|string
 */
function aa_ssp_audio_shortcode_params( $player = null, $srcFile = null, $episode_id = null ) {
	if ( strpos( $srcFile, '_._' ) !== false ) {
		// This is a modified podcast mp3 link.
		
		static $x = 0;
		$x++;
		
		$html =
			'<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->
			<audio class="wp-audio-shortcode" id="audio-'.$episode_id.'-'.$x.'" preload="none" style="width: 100%;" controls="controls" autoplay="autoplay"><source type="audio/mpeg" src="'.$srcFile.'?_=1" /><a href="'.$srcFile.'">'.$srcFile.'</a></audio>';
		
		return $html;
	}
	
	return $player;
}
add_filter( 'ssp_media_player', 'aa_ssp_audio_shortcode_params', 20, 3 );

Was this helpful?

0 / 0

Lascia un commento 0

Your email address will not be published. Required fields are marked *