使用全局$post
变量本身,尽管有人会说使用全局变量总是不好的。但由于您在同一个对象中多次使用它,因此最好只获取一次帖子并将其存储在类属性中。
我更喜欢使用WordPressget_post()
功能,因为它看起来更干净get_post()
如果全球$post
变量不是WP\\u 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\' ] );