无法使用wp_INSERT_POST_DATA获取文章ID

时间:2015-06-08 作者:Oliver

我有3个自定义字段,如下所示。我想在保存/发布时使用它们生成标题。。。等

如果我将帖子id作为数字插入,但不是像这样,代码就会工作。。。

function set_post_title( $data , $postarr ) {

    $title = "";
    $post_id = $postarr[\'ID\'];     //NOT WORKING

    $last_name = get_post_meta($post_id, \'last-name\', true);
    $middle_name = get_post_meta($post_id, \'middle-name\', true);
    $first_name = get_post_meta($post_id, \'first-name\', true);

//        $last_name = $data[\'last-name\'];
//        $middle_name = $data[\'middle-name\'];
//        $first_name = $data[\'first-name\'];
//      also didn\'t work...

    if ( $last_name != "" ) {
        $title .= $last_name . ", ";
    }

    if ( !empty( $first_name ) ) {
        $title .= $first_name;
    }

    if ( !empty( $middle_name ) ) {
        $title .= " " . $middle_name;
    }

    $data[\'post_title\'] = $title."aa".$post_id;

return $data;
}
add_filter( \'wp_insert_post_data\' , \'set_post_title\' );
如果更容易,我可以使用以下命令将字段值保存在另一个函数中:

    update_post_meta( $post_id, \'first-name\', $_POST[\'first-name\'] );
是否有类似于更新标题的内容?

这让我抓狂:)

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

codex page

如果要访问$postarr,必须在add\\u filter()中为$accepted\\u args变量传递2。

因此,请使用以下方法:

add_filter( \'wp_insert_post_data\', \'set_post_title\', 99, 2 );

结束

相关推荐

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

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