Dacă doriți să detectați linkuri către Github Gist în postări și să le înlocuiți cu shortcode-uri, atunci shortcode-urile vor fi înlocuite cu gist-uri încorporate.
Instrucțiuni: Adăugați următorul cod în fișierul functions.php al temei dvs. 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);
?>
Formate:
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]
Funcționează perfect în majoritatea cazurilor, dar există un (sau mai multe?) caz în care nu funcționează așa cum ar trebui:
https://gist.github.com/1147076#file_license.txt
Dacă adăugăm acest URL la postarea noastră, va afișa toate fișierele din acest gist. Acest lucru se întâmplă deoarece numele fișierului în gist este cu majuscule. Acesta va funcționa corect:
https://gist.github.com/1147076.js?file=LICENSE.txt
De asemenea, s-ar putea să vă placă verificarea dacă shortcode-ul există deja.
Comentarii Lasă un răspuns