要解决ACF(Advanced Custom Fields)自定义文章字段中的条件性重复标题问题,您可以使用以下代码示例:
首先,在您的主题文件(通常是functions.php)中添加以下代码:
function acf_duplicate_title( $post_id ) {
// 检查是否在保存文章时触发
if ( wp_is_post_revision( $post_id ) ) {
return;
}
// 获取自定义字段的值
$custom_field_value = get_field( 'custom_field', $post_id );
// 检查自定义字段的值是否符合条件
if ( $custom_field_value ) {
// 获取文章标题
$post_title = get_the_title( $post_id );
// 生成新的标题
$new_title = $post_title . ' (' . $custom_field_value . ')';
// 更新文章标题
$post_data = array(
'ID' => $post_id,
'post_title' => $new_title,
);
wp_update_post( $post_data );
}
}
add_action( 'acf/save_post', 'acf_duplicate_title', 20 );
请确保将代码中的custom_field
替换为您自定义字段的名称。
此代码使用acf/save_post
动作钩子来在保存文章时触发自定义函数acf_duplicate_title
。在函数中,它首先检查是否在保存修订版本时触发,以避免重复标题。然后,它获取自定义字段的值,并检查是否符合特定条件。如果条件满足,它将获取原始标题,生成新的标题,并使用wp_update_post
函数更新文章标题。
这样,当您在编辑文章时更新自定义字段的值时,文章标题将根据条件性重复标题的规则进行更新。