WordPress hacks&snippets – del 6 – Et par hurtige shortcodes

11-04-14 brianbrandt 0 kommentarer

Hejsa!

Dette er sjette del, i en ny serie af blogindlæg, jeg vælger at kalde “WordPress hacks&snippets”. Denne serie henvender sig til dem, der har fået blod på tanden med selv at redigere i WordPress temaer og temafunktioner – i modsætning til at prøve at løse alt med plugins.

Se de øvrige dele af serien her:

WordPress hacks&snippets – del 1 – Personlig hilsen på login-side

WordPress hacks&snippets – del 2 – wp_head()

WordPress hacks&snippets – del 3 – jQuery via Google CDN

WordPress hacks&snippets – del 4 – Tøm skraldespanden automatisk

WordPress hacks&snippets – del 5 – Søg og erstat links i databasen

Kode snippet 6: Shortcodes

Hack #6 tillader dig – via et kode snippet – at lave dine egne WordPress shortcodes.

Men hvorfor er det interessant?

Fordi du så kan holde den mængde kode du bruger (og skal huske) inde i dine indlæg nede – især for elementer du bruger ingen og igen.

Plus du skal kun rette det ét sted, hvis du vælger at ændre formatteringen senere – i stedet for at skulle igennem alle dine indlæg for at det skal se ens ud.

Dette snippet er beregnet til filen “functions.php” i dit theme.

/* Kode for egne Shortcodes */
/* Shortcode for OBS-besked om hacks */
/* Brug: [obsBINDESTREGhacks] */ 
/* Hvor BINDESTREG erstattes med en bindestreg: - */ 
function wpdk_obs_hacks( $atts ){
	return '<p class="besked"><strong>OBS</strong>: Da der er tale om hacks i WordPress`s funktionalitet, anbefales disse ikke til WordPress begyndere, men er mere beregnede til de lidt mere garvede WordPress brugere.</p>';
}

/* Shortcode for reminder OBS-besked om backups */
/* Brug: [obsBINDESTREGbackup] */ 
/* Hvor BINDESTREG erstattes med en bindestreg: - */ 
function wpdk_obs_backup( $atts ){
	return '<p class="besked"><strong>Vi anbefaler</strong> to ting når der er tale om wordpress hacks:<br>- at du laver dem i et <strong>child-theme</strong><br>- at du tager <strong>backup</strong> først...</p>';
}

/* Shortcode for OBS-besked med egen tekst */
/* Brug: [obsBINDESTREG] EGEN TEKST HER [/obsBINDESTREG] */ 
/* Hvor BINDESTREG fjernes helt */ 
function wpdk_obs_egen_tekst( $atts, $content = null ){
	return '<p class="besked"><strong>OBS</strong>: ' . $content . '</p>';	
}

/* Tilføj vores shortcodes til listen over ting WordPress "lytter" efter */
/* add_shortcode( NAVN_PAA_SHORTCODE , NAVN_PAA_FUNKTION ); */ 
add_shortcode( 'obs-hacks', 'wpdk_obs_hacks' );
add_shortcode( 'obs-backup', 'wpdk_obs_backup' );
add_shortcode( 'obs', 'wpdk_obs_egen_tekst' );

/* CSS styles for egne Shortcodes */

.besked{
    background-color: #FFFFE0;
	border: solid 1px;
        border-color: #E6DB55;
	padding: 10px;
	border-radius:3px;
	margin-top:20px;
	margin-bottom: 30px !important;
}

Det, der sker, er at vi opretter funktioner, der returnerer noget HTML, når de kaldes. Disse funktioner hægtes så på listen over de ting WordPress kigger efter, når den løber igennem indholdet i dit indløg/side.

Grunden til at jeg skriver BINDESTREG i stedet for “-“, er at ellers ville WordPress fortolke koden, da ovenstående kode-eksempel er en del af dette indlægs indhold og da jeg bruger de shortcodes for at generere følgende to bokse 🙂

shortcodes

[obs-hacks]

[obs-backup]