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