Php Wordpress获取帖子id

Php Wordpress获取帖子id,php,wordpress,custom-post-type,shortcode,Php,Wordpress,Custom Post Type,Shortcode,我正在为wordpress创建一个插件OOP。该插件创建了一个新的自定义帖子类型,称为teams。在团队页面中,a可以使用shortcode[program]生成一些预设html代码。此外,我还使用新的元框创建了自定义字段 然而,问题是:当我进入调用插件的页面时,将团队页面与我需要在插件中获取帖子id以检索get_post_meta()的sortcode相等 我试过以下几件事: public function __construct(){ // not working $

我正在为wordpress创建一个插件OOP。该插件创建了一个新的自定义帖子类型,称为teams。在团队页面中,a可以使用shortcode[program]生成一些预设html代码。此外,我还使用新的元框创建了自定义字段

然而,问题是:当我进入调用插件的页面时,将团队页面与我需要在插件中获取帖子id以检索get_post_meta()的sortcode相等

我试过以下几件事:

public function __construct(){
    // not working    
    $post;
    $post->ID;

    // not working
    global $wp_query;
    $post_id = $wp_query->post->ID;

    $post = get_post( $post_id );

    // not workiing
    echo '<pre>';
    print_r('post_id:' . get_the_ID());
    echo '</pre>';
}
在MyPlugin中,构造函数如下所示

global $post

尝试将post定义为类似全局的

function run_plugin() {
    $plugin = new MyPlugin();
    $plugin->run();
}
/* run_plugin(); */                      // <- instead of this....
add_action( 'wp_loaded','run_plugin' );  // <- ...do this

如果你的插件构造器被调用得太早,post数据将不会被设置并准备好使用

您需要挂接到WPs操作之一,该操作在一切就绪后运行。
init
操作对于post数据应该足够了,但是根据您需要的其他内容,您可以连接到
wp\u loaded
,因为它在WordPress完全加载之后才会运行

函数运行插件(){
$plugin=newmyplugin();
$plugin->run();
}

/*运行_plugin();*//全局$post为空。还尝试在函数定义挂钩后获取postID。但仍然没有得到职位。我很困惑-为什么你有两个构造函数?有相同但不同的尝试来解决这个问题
global $post
function run_plugin() {
    $plugin = new MyPlugin();
    $plugin->run();
}
/* run_plugin(); */                      // <- instead of this....
add_action( 'wp_loaded','run_plugin' );  // <- ...do this