Een nieuwe 'theme' toevoegen aan SyntaxHighlighter Evolved

Inmiddels maak ik geen gebruik meer van SyntaxHighlighter Evolved. Sinds 2016 gebruik ik WP-SynHighlight.

Om code te publiceren op mijn site maak ik gebruik van de wordpress plugin SyntaxHighlighter Evolved. Op de website van de maker staat ook beschreven hoe je een nieuwe theme kan toevoegen. Dat werkt prima, alleen als je wp-debug aan hebt staan zal je zien dat er ondanks de goede werking wel een waarschuwing door wordpress wordt gegeven: Notice: wp_enqueue_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or init hooks.

Simpel gezegd komt dit doordat de code om een nieuw theme toe te voegen te vroeg gestart wordt. Door het in een functie in te pakken kan je dit voorkomen:

1
2
3
4
56
7
8
9
function yoursyntheme_enqueue_styles() { // voorkom: Notice: wp_enqueue_style was called incorrectly.
 
    wp_register_style(
        'syntaxhighlighter-theme-yoursyntheme',
        content_url( 'path/to/your/theme.css' ),        array( 'syntaxhighlighter-core' ),
        '1.2.3' // Een versie nummer, maakt niet uit wat. Het is om cache problemen te voorkomen
    );
};

Nu de stylesheet geregistreerd is kan moeten wel alleen de SyntaxHighlighter plugin nog op de hoogte stellen:

10
11
12
13
1415
16
add_filter( 'syntaxhighlighter_themes', 'your_function_name_here' );
 
function your_function_name_here( $themes ) {
   $themes['yoursyntheme'] = 'The Name Of Your Theme';
    return $themes;
}

En zo werkt alles helemaal foutloos. Ik heb van mijn theme welke je hierboven zit (het lijntjespapier dus) een plugin gemaakt. Deze is hier te downloaden. Je kan deze ook als basis gebruiken om je eigen theme te maken. Succes!

  • Ik heb nooit een opleiding gehad in C, Javascript of PHP, alles wat ik weet komt van Youtube en Google.
    Ik weet dat mijn code vaak korter kan, maar ik geef de voorkeur aan leesbaarheid zodat ik na een jaar mezelf nog snap. Mochten er andere fouten in zitten dan hoor ik het graag.