我在尝试完成这样的事情时遇到的一个问题是:你什么时候试图获得这些信息。
WordPress页面请求中发生了很多事情。请参见:https://codex.wordpress.org/Plugin_API/Action_Reference
如果您的插件文件中只有raw函数,它将在插件加载时尝试运行(这是过程的早期阶段),您将无法获得您要查找的信息。
我不确定你能多早做,但我通常坚持wp
.
add_action( \'wp\', \'get_post_id\' );
function get_post_id () {
global $wp_query;
$post_id = $wp_query->post->ID;
}
我这样做的方式是:
class Main_Plugin_Class(){
public $post_id;
public __constructor(){
...
add_action( \'wp\', array( \'this\', \'at_wp\') );
}
public function at_wp(){
$post_id = $this->get_post_id();
$this->object_that_will_actually_do_things = new Class_For_Doing_Things($post_id);
}
private function get_post_id(){
global $wp_query;
$id = $wp_query->post->ID;
return $id;
}
}