2009-12-08 8 views
1

J'écris un plugin qui ajoute une page avec une étiquette [deposit_page]; cette balise devrait être remplacée par du code PHP.WordPress remplacer le contenu d'une page (plugin)

C'est ce que j'ai, mais ça ne marche pas. Y a-t-il quelque chose qui me manque ou qui ne va pas? Je viens de remarquer que j'ai donné le même nom de variable au contenu qui devrait remplacer le tag et la fonction elle-même. Est-ce que ceci pourrait être le problème?

+0

Ce code fonctionne bien (je viens de tester dehors en le mettant dans functions.php). Comment l'incluez-vous dans votre plugin? Y at-il plus de fonctionnalités à votre plugin? Sinon, je suggère simplement de le coller dans votre fichier de fonctions. –

+0

Je l'ai fait, je viens de copier/coller la fonction dans functions.php du thème par défaut, mais toujours le même – Christophe

+0

utilisez-vous PHP5? str_ireplace est une fonction PHP 5. Comme je l'ai dit, je l'ai copié et collé dans une installation wp existante ici et cela fonctionne très bien. De son propre chef, au milieu d'une phrase ("test [deposit_page] test"), à peu près toutes les configurations auxquelles je peux penser. C'est un code parfaitement valide. –

Répondre

6

WordPress a un support pour [square_bracket_shortcodes] construit en

Voir:. http://codex.wordpress.org/Shortcode_API

Voici votre exemple simple:

function deposit_page_shortcode($atts) { 
    $deposit_page_content = "here will go the content that should replace the tags"; 
    return $deposit_page_content; 
} 

add_shortcode('deposit_page', 'deposit_page_shortcode'); 

Vous pouvez coller dans fichier functions.php de votre thème actif.

Si vous voulez des attributs, comme [my_shortcode foo=bar], vous feriez, en haut de cette fonction:

extract(shortcode_atts(array(
    'foo' => 'default foo', 
    'example' => 'default example', 
), $atts)); 

// Now you can access $foo and $example