J'utilise global $post
plusieurs fois dans une classe. Ce sont mes doutes
Quelle est la bonne façon de l'utiliser dans une classe
class Test{
public function(){
global $post;
}
public function2(){
global $post;
}
public function3(){
global $post;
}
}
Il n'y a rien de mal à utiliser la variable globale $post
En soi, bien qu'il y ait des gens qui diront que l'utilisation de variables globales est toujours mauvaise. Mais comme vous l'utilisez plusieurs fois dans le même objet, il serait préférable de ne récupérer le message qu'une seule fois et de le stocker dans une propriété de classe.
Je préfère utiliser la fonction WordPress get_post()
car elle a l'air plus propre et get_post()
fait des choses si la variable globale $post
N'est pas un objet WP_Post. L'utilisation de la variable globale $post
plusieurs fois dans une classe ne ralentira cependant pas votre site, si c'est votre principale préoccupation.
Donc ma classe pourrait ressembler à ceci:
class Test {
protected $post;
public function __construct() {
$this->post = \get_post();
}
public function fizzbuzz() {
//* Use $this->post instead of global $post
}
... and etc. Mainly etc.
}
Si vous cherchez à modifier l'objet global $post
, Une meilleure méthode serait d'utiliser le crochet d'action the_post
Pour accéder à l'objet $post
Immédiatement après sa configuration.
class Test {
public function the_post( $post_object ) {
//* Do something useful with the post object
}
}
add_action( 'the_post', [ new Test(), 'the_post' ] );