php-Schnipsel (shortcodes)

Es gibt manchmal Anforderungen, die nur via php-Schnipsel erreicht werden können. Diese sind in functions.php (in Child-Theme!) einzufügen und manchmal braucht es auch noch ein paar css-Anweisungen.

Hier ein paar Beispiele im Bereich der Shortcodes: 

In der Fusszeile wird oft ein Copyright-Hinweis angezeigt mit einer Jahrzahl, also so:

©2024 woodesign

Das wird so erreicht:

in functions.php:

function extra_style_shortcode_copyright( $atts, $content = null ) {
    return '©' . date('Y'); }
add_shortcode('copyright', 'extra_style_shortcode_copyright');

im Backend-Editor:

[[copyright]] woodesign

Im Text soll ein gewisses Wort die Formatierung gemäss einer CSS-Klasse anzeigen.

Zum Beispiel soll woodesign immer gleich aussehen.

Das wird erreicht mittels Eintrag in functions.php (und css-Klasse .woodesign muss natürlich definiert sein):

function extra_style_shortcode_woodesign( $atts, $content = null ) { 
return '<span class="woodesign">' . do_shortcode($content) . '</span>'; 
} 
add_shortcode('woodesign', 'extra_style_shortcode_woodesign');

So wirds gemacht:

Zum Beispiel soll [[woodesign]woodesign[/woodesign]] immer gleich aussehen.

Dieser html-Code entsteht daraus:

Zum Beispiel soll <span class="woodesign">woodesign</span> immer gleich aussehen.

Weitere Anwendungen können zum Beispiel sein:

  • Verwenden einer css-Klasse um Slibentrennung zu vermeiden
  • Verwenden einer css-Klasse um Wörter zusammen zu halten (z.b. Telefon-Nr) – nowrap

Plugin Div Shortcode

Dieses Plugin hilft <div> Tages inklusive Klassen in den Text einzufügen. zb:

[[div class="faq"]]
Textkdsjfn ksjdf kjhsdk f
[[/div]]

Das Plugin wird aber nicht mehr weiter entwickelt – muss auch nicht, da es läuft wie es soll.
Der Code kann natürlich auch direkt in die functions.php eingefügt werden:

/**
 * Open Div Shortcode
 *
 */
function be_div_shortcode( $atts ) {

	$atts = shortcode_atts( array(
		'class' => '',
		'id'    => '',
	), $atts, 'div-shortcode' );

	$return = '<div';
	if ( !empty( $atts['class'] ) )
		$return .= ' class="'. esc_attr( $atts['class'] ) .'"';
	if ( !empty( $atts['id'] ) )
		$return .= ' id="'. esc_attr( $atts['id'] ) .'"';
	$return .= '>';
	return $return;
}
add_shortcode( 'div', 'be_div_shortcode' );


/**
 * Close Div Shortcode
 *
 */
function be_end_div_shortcode( $atts ) {
	return '</div>';
}
add_shortcode( 'end-div', 'be_end_div_shortcode' );