- In Plugins werden Shortcodes in einer init action hinzugefügt.
- Ein Shortcode gibt Ausgaben über return am Ende zurück, nicht über echo während der Ausführung.
- Die Zeilen define und require_once sind überflüssig.
- Die action bleibt leer und zeigt damit auf die Seite, auf der der Shortcode eingefügt wird.
Hier ein Ansatz zum selbst weiterbasteln...
PHP
<?php
/*
Plugin Name: Greeting
*/
function mg_greeting() {
if ( !isset( $_POST['mg_send'] ) ) {
$output = '<form method="post" action="">
<p>Name: <input type="text" name="mg_name" size="30"></p>
<p><input type="Submit" name="mg_send" value="submit"></p>
</form> ';
} else {
if ( !empty( $_POST['mg_name'] ) ) {
$output = 'Hello ' . esc_html( $_POST['mg_name'] ) . '!';
} else {
$output = 'Kein Name eingegeben...';
}
}
return $output;
}
function mg_shortcodes_init() {
if( !shortcode_exists( 'greeting_MG' ) ) {
add_shortcode( 'greeting_MG', 'mg_greeting' );
}
}
add_action( 'init', 'mg_shortcodes_init' );
Alles anzeigen