如何使用ACF域从前端表单更新自定义帖子标题?

时间:2014-11-20 作者:I_LOVE_WP

因此,我有一个自定义的帖子标题,由前端(非管理员访问)表单使用AFC字段编写。我所追求的是一种在从前端编辑表单更新帖子时更新标题的方法。

以下是从函数中的ACF字段分配帖子标题的工作代码。php:

function auto_title_insert( $value ) {
    if ( !$value ) :
        $value = $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
        return $value;
    endif;
    return $value;
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );
上面的代码工作得很好,但是当自定义帖子类型更新时,标题不会更新,它仍然是从上面的代码分配的第一个标题。

你知道更新帖子时如何更新标题吗?

2 个回复
SO网友:Milo

你检查一下!$value 在从字段分配标题之前,一旦帖子有了标题,该测试将为false。如果您总是希望它更新,请删除测试。

function auto_title_insert() {
    return $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );

SO网友:I_LOVE_WP

我成功了-耶!:)不管有没有Milo建议删除的测试,它都能正常工作,但我忽略了它,因为它不是必需的。但是,有必要在函数括号中包含$值。要使用此字段,您当然必须使用自己的ACF字段Id。

// generate post title on submit
function auto_title_insert( $value ) {
  $value = $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
  return $value;
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );

// update post title on update
function my_acf_update_value( $value, $post_id, $field ) {
    global $_POST;
    $new_title = $value;
    $new_slug = sanitize_title( $new_title );
    $my_post = array(
        \'ID\'         => $post_id,
        \'post_title\' => $new_title,
        \'post_name\'  => $new_slug
  );
  wp_update_post( $my_post );   
}
add_filter(\'acf/update_value\', \'my_acf_update_value\', 10, 3);
哦,是的,还有一件事-AFC args数组中必须包含以下“post\\u title”规范。我将其包含在原始的帖子创建表单和帖子编辑表单中。

$args = array(
    \'post_title\'  => $_POST[\'acf-field-make\'],
);
acf_form( $args );

结束
如何使用ACF域从前端表单更新自定义帖子标题? - 小码农CODE - 行之有效找到问题解决它

如何使用ACF域从前端表单更新自定义帖子标题?

时间:2014-11-20 作者:I_LOVE_WP

因此,我有一个自定义的帖子标题,由前端(非管理员访问)表单使用AFC字段编写。我所追求的是一种在从前端编辑表单更新帖子时更新标题的方法。

以下是从函数中的ACF字段分配帖子标题的工作代码。php:

function auto_title_insert( $value ) {
    if ( !$value ) :
        $value = $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
        return $value;
    endif;
    return $value;
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );
上面的代码工作得很好,但是当自定义帖子类型更新时,标题不会更新,它仍然是从上面的代码分配的第一个标题。

你知道更新帖子时如何更新标题吗?

2 个回复
SO网友:Milo

你检查一下!$value 在从字段分配标题之前,一旦帖子有了标题,该测试将为false。如果您总是希望它更新,请删除测试。

function auto_title_insert() {
    return $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );

SO网友:I_LOVE_WP

我成功了-耶!:)不管有没有Milo建议删除的测试,它都能正常工作,但我忽略了它,因为它不是必需的。但是,有必要在函数括号中包含$值。要使用此字段,您当然必须使用自己的ACF字段Id。

// generate post title on submit
function auto_title_insert( $value ) {
  $value = $_POST[\'fields\'][\'field_538626f57e84c\'].\' \'.$_POST[\'fields\'][\'field_538627ffeccb0\'].\' \'.$_POST[\'fields\'][\'field_53863a5c7502b\'].\' \'.$_POST[\'fields\'][\'fields[field_53a9bb09f82ba]\'];
  return $value;
}
add_filter( \'title_save_pre\', \'auto_title_insert\' );

// update post title on update
function my_acf_update_value( $value, $post_id, $field ) {
    global $_POST;
    $new_title = $value;
    $new_slug = sanitize_title( $new_title );
    $my_post = array(
        \'ID\'         => $post_id,
        \'post_title\' => $new_title,
        \'post_name\'  => $new_slug
  );
  wp_update_post( $my_post );   
}
add_filter(\'acf/update_value\', \'my_acf_update_value\', 10, 3);
哦,是的,还有一件事-AFC args数组中必须包含以下“post\\u title”规范。我将其包含在原始的帖子创建表单和帖子编辑表单中。

$args = array(
    \'post_title\'  => $_POST[\'acf-field-make\'],
);
acf_form( $args );

相关推荐

删除具有实际标题的SANITIZE_TITLE_WITH_DASSES函数

求你了,我真的需要帮助。下面的代码是在我的网站上将搜索查询保存为标记的代码,但它将标题替换为“-”,请问有什么方法可以使标记标题名称保持搜索状态?。function addsometags() { //Don\'t do anything if we\'ve already got 20 tags $posttags = get_the_tags(); $count=0; if ($posttags) { foreach($posttags as $tag