web-dev-qa-db-fra.com

sortie des codes courts avant le contenu

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?

7
Neros

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' );
12
kovshenin