2009-12-19 4 views
0

J'utilise le code suivant dans un de mes fichiers de plugin WordPress:WordPress balise plugin pas d'analyse syntaxique <script> bloc

else if($filetype == 'swf'){ 
print 
<<<EOT 
<script type="text/javascript" language="javascript"> 
jQuery(document).ready(function(){ 
var embed = '<div>[kml_flashembed movie="$img" /]</div>'; 
jQuery("#header").prepend(jQuery(embed)); 
}); 
</script> 
<style type="text/css"> 
#$headerID { 
background: none; 
} 
.flashmovie { 
position: absolute; 
} 
</style> 
EOT;} 

Mais au lieu d'analyser le bloc [kml_flashembed], il se cracher comme il est. Je l'ai mis manuellement dans mon fichier header.php et là il s'est bien passé, donc le problème est dans la façon dont le JavaScript l'injecte dans le HTML. Quelqu'un peut-il faire la lumière sur ce que je devrais changer pour obtenir l'étiquette à analyser au lieu d'être rendu littéralement?

(La balise est pour le plugin WordPress Flashembed Kimili.)

Répondre

0

Essayez d'utiliser la fonction do_shortcode pour étendre le shortcode.

+0

je l'ai changé à ce qui suit: else if ($ filetype == 'swf') { $ content = do_shortcode ("[kml_flashembed movie = \" $ img \ "/]"); impression <<< EOT

1

Vous ne pouvez pas attendre PHP pour remplacer le [kml_flashembed movie="$img" /] si vous le placez à l'intérieur d'un bloc heredoc

else if($filetype == 'swf'){ 
print <<<EOT 
<script type="text/javascript" language="javascript"> 
jQuery(document).ready(function(){ 
var embed = '<div> 
EOT; 
[kml_flashembed movie="$img" /] 
print <<<EOT2 
</div>'; 
jQuery("#header").prepend(jQuery(embed)); 
}); 
</script> 
<style type="text/css"> 
#$headerID { 
background: none; 
} 
.flashmovie { 
position: absolute; 
} 
</style> 
EOT2;} 
+0

Cela prend tout son sens, mais ça ne marche pas pour moi. Je ne vois aucune erreur dans Firebug, la page crache juste vide. Quand je commente ce code, la page se charge bien, donc le problème est ici quelque part. Je m'assure qu'il n'y a pas d'espaces avant ou après les balises 'EOT;' et 'EOT2; Quoi d'autre pourrait-il être? Merci de votre aide. – pthesis

+0

Légèrement changé le code réessayer s'il vous plaît. Peut-être aussi préfixer une impression au bloc '[kml ....]' – jitter

+0

Pas de chance, malheureusement. Sans «imprimer» devant le bloc, il imprime une page vierge. Avec le 'print', il crache littéralement le bloc' [kml ...] 'comme avant. – pthesis