“UPDATE_POST_META”在“wp_INSERT_POST_DATA”挂接中不起作用

时间:2012-10-08 作者:ktsixit

我在我的functions.php

add_filter(\'wp_insert_post_data\', \'ad_change_title\');
function ad_change_title($data)
{
    if($data[\'post_type\'] != \'ad_listing\')
        return $data;
    if(!is_admin())
        return $data;

    global $post;   
    update_post_meta((int)$post->ID, \'cp_entitle_englishel\', (string)$_POST[\'qtrans_title_en\']);

    return $data;
}
但是update_post_meta 部分我已经检查了post_id, cp_entitle_englishel, qtrans_title_en 值,并且它们是有效的。有什么建议吗?

1 个回复
SO网友:Rarst

当前格式的代码存在两个问题:

  1. wp_insert_post_data 钩子在实际插入之前运行。换句话说,post可能还不存在。

    此挂钩中的数据不包含post_id.

更多要使用的配件挂钩是处理插入后的挂钩:

do_action(\'save_post\', $post_ID, $post);
do_action(\'wp_insert_post\', $post_ID, $post);

结束

相关推荐

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

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