Title: Shortcode in Shortcode Function aufrufen?
Last modified: 9. November 2017

---

# Shortcode in Shortcode Function aufrufen?

 *  Gelöst [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/)
 * Hey,
    ich wollte gerade einen Shortcode schreiben, in dem ein Spoiler erschaffen
   wird und darin wird ein Galerie Shortcode aus einem anderem Plugin aufgerufen.
   Leider geht gar nichts mehr, sobald ich die folgende Zeile hinzufüge, um den 
   Shortcode zu laden: `echo do_shortcode('[tg_grid_gallery galery_id="4749"]')`
   Hierbei wird das 4749 noch durch eine Variable ersetzt, jedoch will ich das erstmal
   zum laufen bekommen ^^ Warum geht dann nichts mehr? Braucht ihr noch mehr Code
   oder reicht die eine Zeile (an der es 100% liegt)?
 * MfG
    Timer7734

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 17)

1 [2](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/page/2/?output_format=md)
[→](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/page/2/?output_format=md)

 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43053)
 * Ein Shortcode verweist auf eine Callback-Funktion, die im Frontend ausgeführt
   werden soll, um den Shortcode zu ersetzen:
 *     ```
       function shortcode_callback_func( $atts, $content = '' ) {
       	$atts = shortcode_atts( array(
       		'id' => 'value',
       	), $atts, 'shortcode-id' );
   
       	// do shortcode actions here
       }
       add_shortcode( 'shortcode-id', 'shortcode_callback_func' );
       ```
   
 * Ich weiß nicht, wie die Callback-Funktion deines Plugins heißt, aber statt `echo
   do_shortcode('[tg_grid_gallery galery_id="4749"]')` kannst du auch einfach die
   Callback-Funktion direkt aufrufen:
 *     ```
       $var = 4749
       echo tg_grid_gallery( 'id' = $var );
       ```
   
 * Such mal in deinem Plugin nach `add_shortcode()`, dann findest du die Callback-
   Funktion.
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43070)
 * Ich habe das nun ungefähr so übernommen, nur habe ich folgendes Problem:
    Es 
   kommt immer der Fehler „HTTP ERROR 500“. Deswegen habe ich mal schnell die echo
   Zeile deaktiviert (//), jedoch ging es dann trotzdem nicht wieder. Ich musste
   die Variable auch deaktivieren. Woran liegt das? Die Shortcode Funktion (wenn
   ich $galerid=… und echo deaktiviere gehts):
 *     ```
       function galery_spoiler($atts) {
       	extract( shortcode_atts( array(
       		'title' => '',
       		'galery_name' => '',
       	), $atts ) );
       	$galerid=$a['title']
       	echo tg_grid_gallery_func('gallery_id'=$galerid)
       }
   
       add_shortcode('galspoiler', 'galery_spoiler')
       ```
   
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43076)
 * Die CallBack-Funktion des Shortcode darf nie etwas ausgeben (echo), sondern immer
   nur zurückgeben (return). Leider ist der Fehlercode 500 wenig aussagekräftig.
   Mehr verrät der Error-Log des Webservers. Aber vermutlich reicht es schon, wenn
   du echo mit return ersetzt.
 * Soll das Shortcode-Attribut `title` eigentlich einen Zahlenwert wiedergeben? 
   Dann würde ich das in der Funktion noch validieren.
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43080)
 * Leider hat das das Problem nicht gelöst.
    Oh fail. Danke für den Hinweis. Title
   soll keinen Zahlenwert wiedergeben. Hab ich direkt geändert. Und sorry, wenn 
   ich so dumm frage: Wie kann man den Error Log auslesen? Anscheinend habe ich 
   in dem Jahr Pause doch mehr verlernt, als ich dachte, darum sorry, wenn ich manchmal
   etwas dumm frage ^^
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43082)
 * Die Syntax scheint auch noch nicht zu stimmen, da fehlen drei Semikolon am Ende
   der Zeile mit der Variablen $galerid …, am Ende der return-Zeile und am Ende 
   von add_shortcode(). Hinter function() { … } kommt _kein_ Semikolon.
 * Wenn du sowas probierst, solltest du immer kurz den Debug-Modus aktivieren (Zeile`
   define('WP_DEBUG', true);` in der `wp-config.php`, wenn alles läuft wieder auf`
   define('WP_DEBUG', false);` setzen.
 * Ob/wo du den Error-Log des Webservers auslesen kannst, ist bei jedem Webhoster
   verschieden. Schau mal im Kundenmenü nach, schau in die Online-Dokumentation 
   des Webhoster und wenn das nicht hilft, frag beim Support nach.
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43084)
 * Probier mal das hier, wobei ich nicht weiß, welche Attribute die Funktion `tg_grid_gallery_func()`
   hat und ob `$gallery_id` korrekt ist:
 *     ```
       function galery_spoiler( $atts ) {
       	extract(
       		shortcode_atts(
       			array(
       				'title'       => '',
       				'galery_name' => '',
       			), $atts
       		)
       	);
       	$galerid = $a['title'];
       	return tg_grid_gallery_func( $gallery_id = $galerid );
       }
   
       add_shortcode( 'galspoiler', 'galery_spoiler' );
       ```
   
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43085)
 * Ok nun kommt folgender Fehler:
 * > Parse error: syntax error, unexpected ‚=‘ in /mnt/web115/b2/13/57821813/htdocs/
   > main/wp-content/plugins/galery-spoiler/galery-spoiler.php on line 20
 * Jedoch habe ich gerade keine Ahnung, wo da der Fehler ist. Ich habe die Stelle
   mit dem = doch genauso gemacht, wie oben geschrieben oder nicht?
    Und danke. 
   Habe gerade die Semikolon komplett vergessen. Muss mich gerade erstmal wieder
   einarbeiten ^^
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43089)
 * Welchen Code hast du denn inzwischen? 🙂
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43092)
 * Oh ich habe deinen zuvorigen zweiten Post nicht gesehen. Habe das nun eingefügt
   und nun war der Fehler weg. Nur leider kommt ein von der Function „tg_grid_gallery_func“
   vorgefertigter Fehler:
 * > Empty gallery item. Please make sure you have upload image to it or check the
   > short code.
 * Und nebenbei hier der aktuelle Code (habe noch ein paar Fehler gefunden, die 
   ich abgeändert hab):
 *     ```
       function galery_spoiler( $atts ) {
       	$a = shortcode_atts( array(
       		'title'       => '',
       		'galery_name' => '',
       	), $atts );
       	return tg_grid_gallery_func($gallery_id = $a['galery_name'], $margin = "false");
       }
   
       add_shortcode( 'galspoiler', 'galery_spoiler' );
       ```
   
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43093)
 * Enthält denn dein Shortcode auch das Attribut?
    `[galspoiler galery_name="irgendwas"]`
 * Übrigens: auf Deutsch heißt es Galerie, auf English gallery mit zwei „l“. 🙂
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43095)
 * Ja
    `[galspoiler title="test" galery_name="4749"]`
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43097)
 * Was ist das denn für ein Plugin, das du da verwendest?
    Ich würde mir die Funktion
   gerne mal anschauen.
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43099)
 * Das hat glaube ich früher mal mein Bruder geschrieben (der steht gerade zur Hilfe
   leider nicht zur Verfügung). Da ich jetzt leider nicht weiß, ob ich das veröffentlichen
   darf, schreibe ich hier mal nur den einzelnen Shortcode (ich hoffe das reicht):
 *     ```
       function tg_grid_gallery_func($atts, $content) {
       	extract(shortcode_atts(array(
       		'gallery_id' => '',
       		'margin' => 'false',
       	), $atts));
   
       	$images_arr = get_post_meta($gallery_id, 'wpsimplegallery_gallery', true);
       	$images_arr = pp_resort_gallery_img($images_arr);
   
       	$return_html = '';
       	$custom_id = time().rand();
   
       	$margin_class = '';
       	if(!empty($margin) && $margin == 'true')
       	{
       		$margin_class = 'withmargin';
       	}
   
       	if(!empty($images_arr))
       	{
       		$return_html.= '<div id="'.$custom_id.'" class="photo_wall_wrapper shortcode ' .esc_attr($margin_class).'">';
   
       		foreach($images_arr as $key => $image)
       		{
       			$image_url = wp_get_attachment_image_src($image, 'original', true);
       			$small_image_url = wp_get_attachment_image_src($image, 'tg_grid', true);
   
       			$image_caption = get_post_field('post_excerpt', $image);
   
       			$tg_lightbox_enable_caption = kirki_get_option('tg_lightbox_enable_caption');
   
       			$return_html.= '<div class="wall_entry ' .esc_attr($margin_class).'">';
       			$return_html.= '<div class="wall_thumbnail">';
       			$return_html.= '<a class="fancy-gallery" href="'.esc_url($image_url[0]).'" ';
   
       			if(!empty($tg_lightbox_enable_caption)) 
       			{
       				$return_html.= 'title="'.esc_attr($image_caption).'" ';
       			}
   
       			$return_html.= '>';
       			$return_html.= '<img src="'.esc_url($small_image_url[0]).'" alt=""/>';
   
       			$return_html.= '</a>';
       			$return_html.= '</div>';
       			$return_html.= '</div>';
       		}
   
       		$return_html.= '</div>';
       	}
       	else
       	{
       		$return_html.= __( 'Empty gallery item. Please make sure you have upload image to it or check the short code.', PLUGINDOMAIN );
       	}
   
       	return $return_html;
       }
       add_shortcode('tg_grid_gallery', 'tg_grid_gallery_func');
       ```
   
 * Nur so nebenbei: wenn ich `[tg_grid_gallery gallery_id="4749"]` schreibe, wird
   die Galerie ohne Fehler angezeigt.
 *  Moderator [Bego Mario Garde](https://de.wordpress.org/support/users/pixolin/)
 * (@pixolin)
 * Moderator (nicht mehr aktiv)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43100)
 * Probier mal folgendes:
 *     ```
       function gallery_spoiler( $atts ) {
         $a = shortcode_atts( array(
           'gallery_id' => '',
           'margin'      => false,
           ), $atts );
         $args = array(
           'gallery_id' => $a[ 'gallery_id' ],
           'margin'     => $a[ 'margin' ],
         );
         return tg_grid_gallery_func($args);
       }
   
       add_shortcode( 'galspoiler', 'gallery_spoiler' );
       ```
   
 * Der Shortcode lautet dann `[galspoiler gallery_id="4749"]`.
 *  Thread-Starter [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * (@timer7734)
 * [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/#post-43105)
 * Da kommt dann ein Warning:
 * >  Warning: Missing argument 2 for tg_grid_gallery_func(), called in /mnt/web115/
   > b2/13/57821813/htdocs/main/wp-content/plugins/galery-spoiler/galery-spoiler.
   > php on line 24 and defined in /mnt/web115/b2/13/57821813/htdocs/main/wp-content/
   > plugins/custom-post/tg-shortcode.php on line 717
 * Kann ich das einfach ignorieren/irgendwie abschalten oder wie bekomme ich das
   weg?

Ansicht von 15 Antworten – 1 bis 15 (von insgesamt 17)

1 [2](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/page/2/?output_format=md)
[→](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/page/2/?output_format=md)

Das Thema „Shortcode in Shortcode Function aufrufen?“ ist für neue Antworten geschlossen.

 * In: [Plugins](https://de.wordpress.org/support/forum/plugins/)
 * 17 Antworten
 * 2 Teilnehmer
 * Letzte Antwort von: [timer7734](https://de.wordpress.org/support/users/timer7734/)
 * Letzte Aktivität: [vor 8 Jahren, 5 Monaten](https://de.wordpress.org/support/topic/shortcode-in-shortcode-function-aufrufen/page/2/#post-43116)
 * Status: gelöst

## Themen

### Beliebteste Themen

### Unbeantwortete Themen

### Nicht-Support-Themen

### Gelöste Themen

### Ungelöste Themen

### Alle Themen
