我如何编写一个函数来更新任何缺失的特定POST元数据?

时间:2021-09-02 作者:Michael Stokes

我被分配了一项任务,该任务遵循篮球运动员的一个场景。它包含一个自定义帖子类型“player”,该类型存在一个元字段调用“player\\u external\\u id”,假设所有玩家都有一个非常唯一的id,而不是WordPress id。

所有玩家将在第三方网站上有一个页面,其结构如下;http://example.com/channel/{player\\u external\\u id}”字样;

“player”自定义帖子中添加了一个新的元字段“player\\u tv\\u url”,为即将到来的赛季征召的所有新球员都有适当的值集。

他们需要更新任何丢失的“player\\u tv\\u url”帖子元数据,我被要求编写一个代码来完成这一任务。

以下是我提交的代码:

function check_post_update_meta ($post_id, $key, $value) {
   $response = get_post_meta($post_id, $key, true);

if ($response == $value) {
return true;
} else {
$response = update_post_meta($post_id, $key, $value);
}
}
如何触发代码的执行?

update_post_meta($post_id, \'player_tv_url\', $value);
我收到反馈,说我的代码中缺少一些组件。我以为我走的是正确的道路。我不知道出了什么问题?我想知道我的代码中到底缺少了什么,以便修复它。

1 个回复
SO网友:Douglas - 3X Web

尝试这样做,您的代码可能返回一个空字符串或false,然后将其与另一个空字符串或false进行比较,从而返回true。

function check_post_update_meta ($post_id, $key, $value) {

   // response can receive post meta array, or \'\' or false
   $response = get_post_meta($post_id, $key, true);

    // isset checks for data, so in case $response is empty if() will not evaluate true
    if( isset($response) ){

        if ($response == $value) {

            return true;

        } else {

            $response = update_post_meta($post_id, $key, $value);
        }
    }
}

相关推荐

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

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