Generate Post Title and Slug from Advanced Custom Fields

I often need to create post titles in WordPress based on fields I’ve generated using Advanced Custom Fields. Below is an example that assumes we have a Custom Post Type registered to “staff” and two Custom Fields with the name of “first_name” and “last_name”. Using the “update_value” hook provided by Advanced Custom Fields and “wp_update_post” I am able to update the Slug and Post Title using the values given in the respective fields.

<?php
/** Create Title and Slug */
function acf_title( $value, $post_id, $field ) {
 if ( get_post_type( $post_id ) === 'staff' ) {

 $new_title = get_field( 'first_name', $post_id ) . ' ' . $value;
 $new_slug = sanitize_title( $new_title );

 wp_update_post(
 array(
 'ID' => $post_id,
 'post_title' => $new_title,
 'post_name' => $new_slug,
 )
 );
 }
 return $value;
}
add_filter( 'acf/update_value/name=last_name', 'acf_title', 10, 3 );

To disable the Title field I remove it from the supports argument for the register_post_type.

'supports' => array( 'editor', 'thumbnail', 'revisions', 'page-attributes' ),

Disabling the title at a custom post type level will, unfortunately, remove the clickable permalink below the title that I often use. To combat that I create a very simple metabox with the permalink. Demonstrated below. (I believe this is no longer the case with Post Types using the Block Editor)

/**
 * Adds a meta box
 */
function simple_meta_box() {
 add_meta_box( 'prfx_meta', ( 'View Post' ), 'simple_meta_box_callback', 'staff', 'side', 'high' );
}
add_action( 'add_meta_boxes', 'simple_meta_box' );

/**
 * Outputs the content of the meta box
 */
function simple_meta_box_callback( $post ) {
 echo '<a href="';
 the_permalink();
 echo '" class="button button-small" target="_blank">View Profile</a>';
}
http://philhoyt.com/2016/12/15/using-advanced-custom-fields-create-post-title/
«
»
ACF (3)
Admin Column (4)
Breadcrumbs (2)
CSS (6)
Custom post types (4)
Custom Taxonomies (3)
Customizer (4)
Hooks & Filters (3)
Jquery (9)
LAMP (10)
Login (5)
Meta boxes (6)
Multisite (2)
My Code (1)
Open Graph Meta Tags (1)
Redirects (2)
SEO (4)
Theme Building (5)
Title Tags (2)
Typography (3)
Uncategorised (54)
User Roles & Capabilities (2)
White labeling (9)
Working with Images (11)
Working with videos (2)
WP Database (1)