2016-04-04 6 views
0

Ich verwende derzeit ein Thema, das mit einer Reihe von Shortcodes kommt.Wordpress verschachtelte Shortcode/Plugin funktioniert nicht

Ich möchte einen Shortcode in einen Shortcode aufnehmen. Einer kommt von einem Social-Share-Plug-in namens ShareThis, während der andere Teil des Themas ist.

Wenn ich jedoch den Shortcode verschachtelt, funktioniert es einfach nicht.

Ich habe auch versucht this plug-in, aber es funktioniert auch nicht. Der Shortcode, den ich hinzufügen möchte, ist unten. [st_buttons] Ist der Shortcode ich versuche zu verschachteln.

[flip_image animate='flip' delay='' flip_on_appear=''  front_image_link='' back_image_link='' background_color='#f2f2f2' back_text='[st_buttons]' link='' target=''] 

Update-Shortcode-Funktion

if (!function_exists('flip_image')) { 
function flip_image($atts, $content = null) { 
extract(shortcode_atts(array("animate" => "", "flip_on_appear" => "",  "delay" =>"", "front_image_link" => "", "back_image_link" => "", "background_color" => "", "back_text" => "", "link" => "", "target" => ""), $atts)); 
$html = ""; 

if($front_image_link != "" && $back_image_link != ""){ 
    $html .= '<div class="flip_image_holder '.$animate.' '.$flip_on_appear.'" data-delay="'.$delay.'"><a href="'.$link.'" target="'.$target.'"><div class="flip_image front"><img src="'.$front_image_link.'" alt="'.getImageAltFromURL($front_image_link).'" /></div><div class="flip_image back"><div class="flip_image_text"><div class="flip_image_text_inner"><img src="'.$back_image_link.'" alt="'.getImageAltFromURL($back_image_link).'" /></div></div></div></a></div>'; 
} else { 
    $html .= '<div class="flip_image_holder '.$animate.' '.$flip_on_appear.'" data-delay="'.$delay.'"><a href="'.$link.'" target="'.$target.'"><div class="flip_image front"><img src="'.$front_image_link.'" alt="'.getImageAltFromURL($front_image_link).'" /></div><div class="flip_image back" style="background-color: '.$background_color.';"><div class="flip_image_text"><div class="flip_image_text_inner"><h4>'.$back_text.'</h4></div></div></div></a></div>'; 
} 

return $html; 
} 
} 
add_shortcode('flip_image', 'flip_image'); 
+0

Kann ich nur bestätigen, dass Ihre Ausgabe mit 'back_text =" [st_buttons] "' endet, wobei der Shortcode einfach so bleibt wie er ist? –

+0

ja, das ist richtig der Haupt-Shortcode ist der [Flip-Image] und [st_buttons] ist der Shortcode. Wenn ich es jedoch wie oben eingefügt habe, bricht es ab und zeigt nur ein '] auf der Seite an. – user1673498

+0

Sie müssen die erste Shortcode-Funktion bearbeiten, um sicherzustellen, dass sie do_shortcode() mit dem Inhalt aufruft, den sie durch https://developer.wordpress.org/reference/functions/do_shortcode/ durchläuft, andernfalls wird sie nur als Text und Sie ausgegeben am Ende mit [] wie du gesagt hast –

Antwort

0

Wenn Sie sind in der Lage, dass die Short Sie eine Änderung vornehmen müssen aktualisiert werden, wo es in der do_shortcode() -Funktion back_text und fügen Sie bezieht sich:

<h4>'.do_shortcode($back_text).'</h4> 

Das sollte dann die zweite [st_buttons] Shortcode-Funktion ausführen, die Sie benötigen.

+0

Hallo danke für deine Antwort aus irgendeinem Grund, die nicht funktioniert und es zeigt nur den letzten Teil der shortcopde auf der Seite - es zeigt nur: link = "target ="] – user1673498