X

Shortcode Github Gist

Snippets by IsItWP

Si vous souhaitez détecter les liens vers la Gist de Github dans les articles et les remplacer par des shortcodes, les shortcodes seront remplacés par la Gist intégrée.

Instructions : Ajoutez le code suivant au fichier functions.php de votre thème WordPress.


<?php
// [gist id="ID" file="FILE"]
function gist_shortcode($atts) {
  return sprintf(
    '<script src="https://gist.github.com/%s.js%s"></script>', 
    $atts['id'], 
    $atts['file'] ? '?file=' . $atts['file'] : ''
  );
} add_shortcode('gist','gist_shortcode');

// Remove this function if you don't want autoreplace gist links to shortcodes
function gist_shortcode_filter($content) {
  return preg_replace('/https://gist.github.com/([d]+)[.js?]*[#]*file[=|_]+([w.]+)(?![^<]*</a>)/i', '[gist id="${1}" file="${2}"]', $content );
} add_filter( 'the_content', 'gist_shortcode_filter', 9);
?>

Formats :

https://gist.github.com/1147076
https://gist.github.com/1147076#file_annotated.js
https://gist.github.com/1147076.js?file=annotated.js
[gist id=1147076]
[gist id=1147076 file=annotated.js]

Cela fonctionne parfaitement dans la plupart des cas, mais il y a un (ou plusieurs ?) cas où cela ne fonctionne pas comme prévu :
https://gist.github.com/1147076#file_license.txt

Si nous ajoutons cette URL à notre post, il affichera tous les fichiers de ce gist. C’est parce que le nom de fichier dans la gist est en majuscules. Celui-ci fonctionnera correctement :

https://gist.github.com/1147076.js?file=LICENSE.txt

Vous pouvez également vérifier si le shortcode existe déjà.

[code]', $atts['id'], $atts['file'] ? '?file=' . $atts['file'] : '' ); } add_shortcode('gist','gist_shortcode'); // Remove this function if you don't want autoreplace gist links to shortcodes function gist_shortcode_filter($content) { return preg_replace('/https://gist.github.com/([d]+)[.js?]*[#]*file[=|_]+([w.]+)(?![^<]*)/i', '[gist id="${1}" file="${2}"]', $content ); } add_filter( 'the_content', 'gist_shortcode_filter', 9); ?>[/code]

Commentaires   laisser une réponse

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !