This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
programmieren:wordpress:eigenen_shortcode_erstellen [2022/05/20 13:50] – created jgehrke | programmieren:wordpress:eigenen_shortcode_erstellen [2022/12/17 12:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 6: | Line 6: | ||
Dieser Code ist ein Beispiel für einen eigene Shortcode, welcher einen Post-Teaser in einem Beitrag erzeugt. Der Redakteur kann optional eine Beitrags ID und die maximale Länge des Textauszuges (Excerpt) angeben. | Dieser Code ist ein Beispiel für einen eigene Shortcode, welcher einen Post-Teaser in einem Beitrag erzeugt. Der Redakteur kann optional eine Beitrags ID und die maximale Länge des Textauszuges (Excerpt) angeben. | ||
+ | |||
+ | ===== Einfaches Beispiel ===== | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | |||
+ | namespace my_namespace; | ||
+ | |||
+ | /* | ||
+ | [my_shortcode post_id=" | ||
+ | [my_shortcode]$content[/ | ||
+ | */ | ||
+ | // Shortcode Registrieren | ||
+ | add_shortcode( ' | ||
+ | |||
+ | // Die Shortcode Funktion - hier nur Logik und HTML am besten in eine eigene Funktion legen | ||
+ | function shortcode_logic( $atts = [], $content = null ) { | ||
+ | $defaults = [ | ||
+ | ' | ||
+ | ]; | ||
+ | $atts | ||
+ | |||
+ | // Falls im Text-Content auch Shortcodes enthalten sein dürfen | ||
+ | // $content | ||
+ | $return_html = shortcode_html( $atts[' | ||
+ | |||
+ | return $return_html; | ||
+ | } | ||
+ | |||
+ | // HTML Renderer - zur sauberen Trennung | ||
+ | function shortcode_html( $post_id ){ | ||
+ | |||
+ | $return_html = " | ||
+ | <div class=\" | ||
+ | Die Post-ID ist: {$post_id} | ||
+ | </ | ||
+ | "; | ||
+ | |||
+ | return $return_html; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Beispiel in Anwendung ===== | ||
+ | |||
+ | Dieser Shortcode gibt einen Post-Teaser aus. | ||
<code php> | <code php> | ||
Line 13: | Line 59: | ||
[display_post_teaser post_id=" | [display_post_teaser post_id=" | ||
*/ | */ | ||
+ | // Den Code registrieren, | ||
add_shortcode( ' | add_shortcode( ' | ||
+ | // Die eigentliche Funktion die an WP zurück gibt was ausgegeben werden soll | ||
function display_post_teaser( $atts ) { | function display_post_teaser( $atts ) { | ||
$defaults = [ | $defaults = [ | ||
Line 29: | Line 77: | ||
} | } | ||
+ | // Das ist nur eine Helfer Funktion, damit der Code in der Shortcode Funktion nicht zu lang und unübersichtlich wird | ||
function get_post_teaser_html( $post_id, $limit_excerpt = 30 ){ | function get_post_teaser_html( $post_id, $limit_excerpt = 30 ){ | ||
$post_object = get_post( $post_id, ' | $post_object = get_post( $post_id, ' |