在SAVE_POST中写入自动标题(无限循环)

时间:2018-07-28 作者:aitor

我想用自定义字段的内容编写帖子标题$sentence_number, 这样做:

add_action(\'save_post\', function ($title, $post_id) {
    $post_type = get_post_type($post_id);
    if ($post_type == \'sentence\') {
        $sentence_number = get_field(\'sentencia_no\', $post_id);
        wp_update_post($post_id, [
            \'post_title\'   => $sentence_number
        ]);
    }
}, 10, 2);
但我有一个错误:

Uncaught Error: Maximum function nesting level of \'200\' reached, aborting!

我应该如何避免循环?非常感谢。

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

有一个简单的方法,你需要使用过滤器挂钩wp_insert_post_data所以代码应该是

添加过滤器(\'wp\\U insert\\U post\\U data\',\'set\\U post\\U title\\U with\\U field\\U value\');

function set_post_title_with_field_value( $data )
{
    if ($data[\'post_type\'] == \'sentence\' ){
        $sentence_number = get_field(\'sentencia_no\', $data[\'ID\']);
        $data[\'post_title\'] = $sentence_number;
    }
    return $data;
}
您需要将此代码添加到主题函数中。php。因此,请尝试代码并告诉我结果。谢谢

结束