2009-06-22 8 views
2

Pour passer des variables en fonctions, je fais ce qui suit (comme d'autres personnes, je suis sûr):Comment créer des fonctions wordpress comme en PHP?

function addNums($num1, $num2) 
{ 
    $num1 + $num2; 
} 

addNums(2, 2); 

Ma question est comment pourrais-je structurer une fonction d'agir comme Wordpress:

wp_list_categories('title_li='); 

Essentiellement, je cherche un moyen de créer une paire clé/valeur dans mes fonctions. Tout conseil est apprécié.

+0

Vous cherchez quelque chose comme "return $ array [$ param1] = $ param2;"? Désolé pas un expert wordpress .. Btw. Je suggère de donner à chaque paramètre un nom distinct! – merkuro

+0

Je ne sais pas si cet exemple addNums fonctionnerait correctement ... – alex

+0

Voici un lien vers l'API pour wp_list_categories() http://codex.wordpress.org/Template_Tags/wp_list_categories – merkuro

Répondre

2

Vous pouvez utiliser parse_str pour analyser la chaîne pour les arguments. Ce qui est délicat, c'est que vous ne voulez pas laisser passer tous les paramètres. Voici donc un exemple d'utilisation de certains paramètres seulement quand ils sont passés.

Dans l'exemple suivant, seulement foo, bar et valid seraient autorisés.

function exampleParseArgs($arg_string) { 
    // for every valid argument, include in 
    // this array with "true" as a value 
    $valid_arguments = array(
     'foo' => true, 
     'bar' => true, 
     'valid' = true, 
    ); 
    // parse the string 
    parse_str($arg_string, $parse_into); 
    // return only the valid arguments 
    return array_intersect_key($parse_into,$valid_arguments); 

} 

baz sera supprimée, car elle ne figure pas dans $valid_arguments. Donc, pour cet appel:

print_r(exampleParseArgs('foo=20&bar=strike&baz=50')); 

Résultats:

Array 
(
    [foo] => 20 
    [bar] => strike 
) 

De plus, vous pouvez parcourir le Wordpress Source code here, et bien sûr en le téléchargeant à partir wordpress.org. On dirait qu'ils font quelque chose de très similaire.

+0

Parfait! - Merci –

Questions connexes