Duplicate possible:
problème de code court
Les codes courts sont cassés.
Pour ceux qui jouent à la maison, voici une étape facile pour reproduire mon problème.
1) Ouvrez une nouvelle installation Wordpress (3.4.2).
2) Allez dans twentyeleven/functions.php et ajoutez ce qui suit:
function test() {
echo '-TEST-';
}
add_shortcode('testshortcode', 'test');
3) Editez le message 'hello world' pour dire:
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
[testshortcode]
foobar
4) Enregistrer et afficher, mes résultats ressemblent à ce qui suit:
-TEST-
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
foobar
quand cela devrait ressembler à ceci:
Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!
-TEST-
foobar
Qu'est-ce qui se passe ici?
Les rappels de code court doivent être retournés, pas sortis. Alors utilisez les éléments suivants:
function test() {
return '-TEST-';
}
add_shortcode( 'testshortcode', 'test' );
Plus d'infos: http://codex.wordpress.org/Shortcode_API
Si vous devez utiliser echo, vous pouvez aussi le faire de cette façon (utile s'il y a beaucoup de balises et qu'il est difficile de travailler avec des chaînes) -
function test() {
ob_start();
echo '-TEST-';
return ob_get_contents();
}
add_shortcode( 'testshortcode', 'test' );