web-dev-qa-db-fra.com

Incorporation de vidéos de screencast.com dans WordPress Multisite

J'ai une installation multisite de WP 3.5.1 en cours d'exécution, et j'aimerais que les utilisateurs puissent incorporer des vidéos de screencast.com dans leurs publications, de préférence avec un shortcode comme vous le faites avec YouTube ou Vimeo.

Je peux le faire en utilisant le code d'intégration complet du menu de partage screencast.com, mais je ne peux le faire qu'en tant que super administrateur. Tous les autres utilisateurs ont des tags et sont supprimés de leurs publications. Je peux contourner ce problème en installant le plugin MU non filtré , mais ce n'est pas idéal, car il permet aux utilisateurs de placer toutes sortes de codes/balises non fiables dans leur des postes.

J'ai cherché assez longuement une sorte de plugin simple, et je suis tombé sur ce Scedencast.com Video Embedder qui semble être une idée, mais cela n'a pas été mis à jour dans 2 ans.

Je me demande donc s'il existe d'autres solutions qui pourraient fonctionner pour cela.

1
occam98

Screencast.com a une page dédiée GitHub avec des mains pleines de tutoriels (inutile de les cloner ici).

Vous pouvez ensuite utiliser wp_oembed_get() ou enregistrer un nouveau fournisseur à l'aide de wp_oembed_add_provider() .

echo wp_oembed_get( 'http://example.com', array( 
    'width'  => 1920,
    'height' => 1080
) );

Ou ajoutez le fournisseur:

wp_oembed_add_provider(
    'http://screencast.com/*', // The Format
    'http://screencast.com/',  // The Provider
    FALSE                      // Is the first argument not a wildcard but a Regex?
);

Gardez à l'esprit que certains fournisseurs vous forceront à obtenir une clé API pour effectuer des requêtes avec succès. Les bons en distribuent à des fins de test et de développement.

Pour modifier le MarkUp, utilisez le filtre obembed_dataparse , que vous pouvez utiliser.

add_filter( 'oembed_dataparse', 'wpse_91680_oembed_markup', 10, 3 );
function wpse_91680_oembed_markup( $html, $data, $url )
{
    if ( is_int( strpos( $url, 'screencast.com' ) ) )
    {
        // $data might hold interesting stuff for you
        # echo htmlspecialchars( var_export( $data, true ) );

        // $html will be FALSE for every $data->type that 
        // is not 'photo', 'video', 'rich' or 'link'
        // so you need to pre-process the $data object and build your markup here
        return "<br /> And some special appendix";
    }

    return $html;
}
2
kaiser

Je ne suis pas sûr que cela vous aide, mais je viens de parcourir d'autres blogs et j'ai trouvé une suggestion d'essayer le plugin Embed.ly . Il possède une API que vous pouvez enregistrer gratuitement et des centaines de fournisseurs de médias (y compris Screencast, que vous devez activer à partir des paramètres Embed.ly une fois installés). Après cela, allez dans la page/post HTML page et collez uniquement l’URL de screencast (ou autre) et alto! Cela a très bien fonctionné et mes points chauds fonctionnent également. Je pense qu'ils ont une API qui prend l'URL et fournit le code incorporé en arrière-plan. Je ferai rapport si mon code disparaît ou non.

Bonne chance!

0
Gary M.