2010-12-15 6 views
0

Je suis un peu confus, mais si je l'appelle get_post_meta(get_the_ID(), "event", $single = true); elle renvoie la valeur de cette clé, mais si je l'appelle ainsi:Comment appeler get_post_meta correctement

$event_page_meta = "event"; 


function isEvent() 
{ 
    return get_post_meta(get_the_ID(), $event_page_meta, $single = true); 
} 

il retourne un tableau de toutes les méta . Je suis un développeur php plutôt inexpérimenté (principalement python), mais je ne vois pas de différence entre ces deux appels.

Pouvez-vous expliquer pourquoi je ne peux pas extraire cette clé à une variable?

Répondre

2

Deux problèmes:

  1. Le troisième argument pour get_post_meta doit être vrai ou faux, pas une affectation variable. Il suffit d'écrire true. $ Event_page_meta n'est pas dans la portée de la fonction, vous devez soit la transmettre en argument, soit la rendre globale.

éther:

function isEvent($event_page_meta) { 
    return get_post_meta(get_the_ID(), $event_page_meta, true); 
} 

//somewhere else 
$something = isEvent($event_page_meta); 

Ou:

function isEvent() { 
    global $event_page_meta; 
    return get_post_meta(get_the_ID(), $event_page_meta, true); 
} 

... cela suppose event_page_meta $ contient le nom de la clé de métadonnées que vous souhaitez récupérer. Je ne suis pas sûr pourquoi c'est dans une variable et pas seulement une chaîne dans votre appel de fonction.

+0

oui! génial! Je pense que global est meilleur pour mon cas car je veux avoir quelques paramètres globaux à travers le site. – dmitko

+0

L'utilisation de variables globales signifie généralement que vous avez écrit du code mal conçu. –

+0

OK. Pouvez-vous me dire le meilleur design pour de telles constantes globales? Les utiliser comme globaux semble être une bonne idée plutôt simple. Je veux vraiment savoir - par exemple. en python je créerais un module constants.py où stockerait toutes ces variables. – dmitko

Questions connexes