使用变量作为POST ID时,GET_POST_META不起作用

时间:2020-06-11 作者:a2guy

我想我已经阅读了每一篇关于这个主题的建议文章,其中也有一些类似的文章,但似乎没有什么能解决我的问题。看起来应该很简单。

我只想能够使用get_post_meta($id) 哪里$id 在脚本中较早设置,甚至传递到函数中。每当我这样做的时候,我只得到关于_edit_lock_last_edit.

如果我把帖子id硬编码为2985,效果很好,但显然这并不能满足我的需要,因为帖子会改变。对于那些想知道我在发布一个自定义帖子类型的帖子时触发的人,可以从该类型中获取短代码,并将其插入到另一个自定义帖子类型中。

我希望你们中的一位才华横溢的人能帮助一位相对来说比较新的人。

这是我的代码:

add_action(\'transition_post_status\', \'dif_create_zoom_mtg_lesson\', 10, 3);

function dif_create_zoom_mtg_lesson ($new_status, $old_status, $postobj) {
if(\'publish\' === $new_status && \'publish\' !== $old_status && $postobj->post_type === \'zoom-meetings\') {
    global $zoom;
    global $post;

    ob_start();
        echo "POST IN ENTIRETY -metas"."<br/>";
        var_dump($postobj);
        $getpostid = $postobj->ID;
        echo "postid ==>";
        var_dump($getpostid);
        echo "<br/>";
        $postmetas = get_post_meta($getpostid);
        echo "VARDUMP postmetas===>";
        var_dump($postmetas);
        echo "<br/>";
    $dif_zoom_mtg_body .= ob_get_clean();

    $dif_countdown_timer = \'<p id="dif-timer"></p>\';
    $dif_zoom_mtg_body .= $dif_countdown_timer;

// not working now since I cannot get meeting_id dynamically
    //$dif_zoom_mtg_body .= \'[zoom_api_link meeting_id="\'.$dif_zoom_mtg_id.\'" link_only="no"]\';

    $my_post = array();
    $my_post[\'post_type\'] = \'post\';
    $my_post[\'post_title\']    = "Zoom post ID=".$getpostid;
    $my_post[\'post_content\']  = $dif_zoom_mtg_body;
    $my_post[\'post_status\']   = \'publish\';
    $my_post[\'post_author\']   = 1;
    $my_post[\'post_category\'] = array(0);
    // Insert the post into the database
    wp_insert_post( $my_post );
}
}
这为我提供了以下输出:

完整发布-元对象(WP\\u POST)\\4361(24){
[“ID”]=>;
int(2733)
[“POST\\u author”]=>;
字符串(1)”1“
[“POST\\u date”]=>;
字符串(19)“2020-06-11 16:44:55”
[“POST\\u date\\u gmt”]=>;
字符串(19)“2020-06-11 16:44:55”
[“POST\\u内容”“]=>;
字符串(61)”

Xcar车身

[“post\\u title”]=>string(5)“X car”
[“post\\u摘录”]=>string(0)”“
[“post\\u status”]=>string(7)”publish“
[“comment\\u status”]=>string(6)”closed“
[“ping\\u status”]=>string(6)”closed“
[“post\\u password”]=>string(0)”“
[“post\\u name”]=>string(5)”X-car“
[“to\\u ping”]=>string(0“”
[“pinged”]=>字符串(0)”“
[“post\\u modified”]=>字符串(19)“2020-06-11 16:44:55”
[“post\\u modified\\u gmt”]=>字符串(19)“2020-06-11 16:44:55”
[“post\\u content\\u filtered”]=>字符串(0)”“
[“post\\u parent”]=>int(0)
[“guid”]=>字符串(56)”https://xxxxxxx.net/?post_type=zoom-meetings&p=2733
[”menu\\u-order“]=>int(0)
[”post\\u-type“]=>string(13)”缩放会议“
[”post\\u-mime\\u-type“]=>string(0)”“
[”comment\\u-count“]=>string(1)”0“
[”filter“=>string(3)”raw“


postid==>int(2733)

VARDUMP-postmetas======>数组(1){
[”编辑锁“]=>”数组(1){
[0]=>
字符串(12)“1591893865:1”
}
}
>

1 个回复
SO网友:vancoder

如果你想publish_post, 在meta准备就绪之前触发。

要么从POST对象获取meta,要么使用不同的钩子-可能update_post_meta.

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在