使っています global $post
クラスで複数回。これらは私の疑問です
クラス内でそれを使用する適切な方法は何ですか
class Test{
public function(){
global $post;
}
public function2(){
global $post;
}
public function3(){
global $post;
}
}
グローバル$post
変数自体を使用しても問題はありませんが、グローバル変数の使用は常に悪いと言う人もいます。ただし、同じオブジェクトで複数回使用しているため、一度投稿を取得してクラスプロパティに保存することをお勧めします。
WordPress get_post()
関数の方が見栄えがよく、グローバル$post
変数がWP_Postオブジェクトでない場合はget_post()
が何らかの処理を行うため、 。クラスでグローバル$post
変数を複数回使用しても、それが主な心配である場合でも、サイトの速度は低下しません。
したがって、私のクラスは次のようになります。
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.
}
グローバル$post
オブジェクトを変更する場合は、the_post
アクションフックを使用して、セットアップ直後に$post
オブジェクトにアクセスすることをお勧めします。
class Test {
public function the_post( $post_object ) {
//* Do something useful with the post object
}
}
add_action( 'the_post', [ new Test(), 'the_post' ] );