2011-09-07 2 views
0

Ok, donc je code:Comment passer une valeur de la variable à une fonction en PHP (wordpress)

//let's say: 
$period = 30; 
if (!function_exists('filter_where')) { 
    function filter_where($period,$where = '') { 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime("-$period days")) . "'"; 
    return $where; 
    } 
} 
add_filter('posts_where', 'filter_where'); 

Ce code ne fonctionne pas, parce que dans la fonction filter_where, la valeur de la période de $ n'est pas 30.

Comment passer la valeur de $ period (qui est 30) pour que je puisse l'utiliser dans strtotime ("- $ period days")?

La valeur de $ period peut être renseignée par l'utilisateur, donc elle peut changer à un autre nombre que 30.

Merci d'avance.

Répondre

0

Vous pouvez utiliser le mot clé global pour importer des variables de l'espace de noms global. Plus de lire ici: http://php.net/manual/en/language.variables.scope.php

//let's say: 
$period = 30; 
if (!function_exists('filter_where')) { 
    function filter_where($where = '') { 
    global $period; 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime("-$period days")) . "'"; 
    return $where; 
    } 
} 
add_filter('posts_where', 'filter_where'); 

EDIT: Je retire la période variable de $ de la déclaration de votre fonction

+0

pas, il ne fonctionne pas. La période $ à l'intérieur de la fonction renvoie null, au lieu de 30. – baby

+0

Vérifiez à nouveau, j'ai supprimé le $ period de la liste des paramètres de votre fonction. Ça ne devrait pas être là. – stormbreaker

+0

il renvoie toujours null, au lieu de 30. J'ai mis echo ("period2 = $ period"); après la période $ globale; déclaration pour vérifier la valeur et il renvoie null. – baby

Questions connexes