Wordpress Id更改变量

Wordpress Id更改变量,wordpress,Wordpress,我正在做一个项目,我上传一个文件,并在一个短代码中使用它的路径。现在我已经将帖子的ID硬编码到代码中,但我想使其动态化,以便新帖子自动获得正确的短代码 <?php global $wpdb; $thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE post_id = 5574" ) ); echo do_shortcode ('[sgpx gpx="'.'/wp-co

我正在做一个项目,我上传一个文件,并在一个短代码中使用它的路径。现在我已经将帖子的ID硬编码到代码中,但我想使其动态化,以便新帖子自动获得正确的短代码

<?php
global $wpdb; 
$thepost = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->postmeta WHERE post_id = 5574" ) );
echo do_shortcode ('[sgpx gpx="'.'/wp-content/uploads/' . $thepost->meta_value . '"]'); 
?>

偏离@Damocles所说的,你真的在为自己当前的道路设置麻烦。相反,有一些内置的WordPress函数将数据库抽象出来,并使用强烈建议您使用的缓存

//获取当前的WordPress帖子
$the_post=get_post();
//如果我们有一个值(在某些情况下该值为空)
如果($U职位){
//通过当前帖子的ID从帖子元表中获取值
$the_post_meta=get_post_meta($the_post->ID,'YOUR_meta_KEY_HERE',true);
//再次检查我们是否有一个值
如果(_post_meta){
//最后,回显短代码
echo do_短码(“[sgpx gpx=“”。/wp content/uploads/”.$the_post_meta.“]”);
}
}
有几种方法可以获得当前的帖子,但这是最常见的。但是,如果您处于自定义循环中,则可能需要进行相应的调整

要访问元,请使用,其中包括一些优化,包括使用缓存而不是数据库


虽然肯定会有例外,但一般来说,如果您使用WordPress,并且发现自己正在编写SQL语句,那么使用核心函数几乎总是有更好、更安全、更快等的方法。

您会遇到什么错误?而且,如果没有要绑定的参数,那么使用预先准备好的语句也没有意义。您的代码可能无法工作,因为您没有执行准备好的语句。您检索元值的方式是个坏主意。如果一篇文章只有一个元键值,而它恰好是在使用您的查询时首先出现的,那么这种方法是有效的。一旦有多个,您可能会运气不好而得到错误的一行。您应该使用
get\u post\u meta($post\u id,'your\u meta\u key\u name\u here',true)
来检索值。要为您创建解决方案,知道meta_值实际来自何处是很有趣的。这段代码正在工作,但是代码中的post id在5574以上,我希望这样,当我发布新的post时,它将从该post上传的文件中获取id,并将id放入这段代码中。很抱歉,回复太晚了,但我需要从事件我尝试了上面的代码,但是没有成功。你有什么想法吗?你说的“事件”是指一个钩子,比如过滤器或动作,还是一个自定义的帖子类型?如果你能提供更多有帮助的内容。这是一种帖子类型,当我制作一个事件时,它将是一个部落事件帖子,所以你有两种帖子类型,内置的核心
post
page
和事件日历中的CPT,对吗?一个和另一个有联系?如果是这样,那么该关系将post/event ID保存在某个位置,但是在没有看到您的实际设置的情况下,我们无法进一步帮助您。您可以尝试在部落事件或帖子上转储
get_postmeta()
,看看这是否对您有帮助,但可能需要对元表进行几次调用以“解除”关系。但是,如果帖子和事件不相关,那么就由您创建一个关系,以便“动态”部分可以发生。