Gist via oEmbed in WordPress einbinden

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 3 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

WordPress hat seit geraumer Zeit die oEmbed Integration um einfach und unkompliziert Inhalte von anderen Siters und Services einzubinden. Besonders bekannt sind dabei diverse Video-Portale und seit der letzten WordPress Version Twitter. Wie so oft in WordPress kann man diese Möglichkeit nutzen und erweitern. In meinem Fall ging es darum, dass Inhalt von Github Gists einfach integriert werden können, einfach per URL in den Inhalt kopieren und gut. Dabei ist ein kleines Plugin entstanden, welches auf Github liegt und von dort genutzt werden kann und ggf. auch via Fork erweitert werden kann.
»» zum Plugin

Technisch ist es wichtig die Funktion wp_embed_register_handler anzusprechen und daher der Kern der Funktion. Alles weitere findet man im Source des Plugins. Die Funktion erlaubt es neu Handler zu definieren und diese geben dann die nötigen Inhalte zurück. In diesem Beispiel wird der String gist definiert, der die Funktione wp_embed_handler_gist als Callback nutzt und die Gist-URL als Parameter. Innerhalb der Funktion werden dann die Inhalte des Parameters ersetzt und die Rückgabe definiert.


wp_embed_register_handler(
    'gist',
    '#https://gist.github.com/(?:[a-z0-9-]*/)?([a-z0-9]+)(\#file_(.+))?$#i',
    'wp_embed_handler_gist'
);

function wp_embed_handler_gist( $matches, $attr, $url, $rawattr ) {
    
    $embed = sprintf(
        '',
        esc_attr( $matches[1] ),
        esc_attr( $matches[2] )
    );

    return apply_filters( 'embed_gist', $embed, $matches, $attr, $url, $rawattr );
}

Comments are closed.