• Resolved Perils

    (@perils)


    Hi,
    I did a custom plugin to save my custom post type ‘fascicolo’ using pods_api_pre_save_pod_item_ filter.
    It works!
    I wish to automatically update (or insert) a sanitized post_name. Is possible with this method?

    add_filter( 'pods_api_pre_save_pod_item_fascicolo', 'slug_set_title', 10, 2);
    function slug_set_title($pieces) {
    	//check if is new item, if not return $pieces without making any changes
    
    	//make sure that all three fields are active
    	$fields = array( 'post_title', 'fascicolo_relazione_rivista',  'fascicolo_anno_solare', 'fascicolo_numero' );
    	foreach( $fields as $field ) {
    		if ( ! isset( $pieces[ 'fields_active' ][ $field ] ) ) {
    			array_push ($pieces[ 'fields_active' ], $field );
    		}
    	}
    	//set variables for fields empty first for saftey's sake
    	$titolo_rivista = $id_rivista = $fascicolo_anno_solare = $fascicolo_numero = '';
    	
    	//get value of "fascicolo_relazione_rivista" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_relazione_rivista' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ][ 'value' ] ) ) {
    		$id_rivista = $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ][ 'value' ];
    	}
    	$titolo_rivista = get_the_title( $id_rivista );
    
    	//get value of "fascicolo_anno_solare" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_anno_solare' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_anno_solare' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_anno_solare' ][ 'value' ] ) ) {
    		$fascicolo_anno_solare = $pieces[ 'fields' ][ 'fascicolo_anno_solare' ][ 'value' ];
    	}
    	//get value of "fascicolo_numero" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_numero' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_numero' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_numero' ][ 'value' ] ) ) {
    		$fascicolo_numero = $pieces[ 'fields' ][ 'fascicolo_numero' ][ 'value' ];
    	}
    	//set post title using $fascicolo_anno_solare and $fascicolo_numero
    	$pieces[ 'object_fields' ][ 'post_title' ][ 'value' ] = $titolo_rivista . ' and ' . $fascicolo_anno_solare . ' and ' . $fascicolo_numero;
    	//return $pieces to save
    	return $pieces;
    }
Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter Perils

    (@perils)

    OK SOLVED!

    add_filter( 'pods_api_pre_save_pod_item_fascicolo', 'slug_set_title', 10, 2);
    function slug_set_title($pieces) {
    	//check if is new item, if not return $pieces without making any changes
    
    	//make sure that all three fields are active
    	$fields = array( 'post_title', 'post_name', 'fascicolo_relazione_rivista',  'fascicolo_anno_solare', 'fascicolo_numero' );
    	foreach( $fields as $field ) {
    		if ( ! isset( $pieces[ 'fields_active' ][ $field ] ) ) {
    			array_push ($pieces[ 'fields_active' ], $field );
    		}
    	}
    	//set variables for fields empty first for saftey's sake
    	$titolo_rivista = $id_rivista = $fascicolo_anno_solare = $fascicolo_numero = '';
    	
    	//get value of "fascicolo_relazione_rivista" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_relazione_rivista' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ][ 'value' ] ) ) {
    		$id_rivista = $pieces[ 'fields' ][ 'fascicolo_relazione_rivista' ][ 'value' ];
    	}
    	$titolo_rivista = get_the_title( $id_rivista );
    
    	//get value of "fascicolo_anno_solare" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_anno_solare' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_anno_solare' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_anno_solare' ][ 'value' ] ) ) {
    		$fascicolo_anno_solare = $pieces[ 'fields' ][ 'fascicolo_anno_solare' ][ 'value' ];
    	}
    	//get value of "fascicolo_numero" if possible
    	if ( isset( $pieces[ 'fields' ][ 'fascicolo_numero' ] ) && isset( $pieces[ 'fields'][ 'fascicolo_numero' ][ 'value' ] ) && is_string( $pieces[ 'fields' ][ 'fascicolo_numero' ][ 'value' ] ) ) {
    		$fascicolo_numero = $pieces[ 'fields' ][ 'fascicolo_numero' ][ 'value' ];
    	}
    	//set post title using $fascicolo_anno_solare and $fascicolo_numero
    	$pieces[ 'object_fields' ][ 'post_title' ][ 'value' ] = $titolo_rivista . ' and ' . $fascicolo_anno_solare . ' and ' . $fascicolo_numero;
    	$pieces[ 'object_fields' ][ 'post_name' ][ 'value' ] = sanitize_title($titolo_rivista . ' and ' . $fascicolo_anno_solare . ' and ' . $fascicolo_numero);
    	//return $pieces to save
    	return $pieces;
    }
    Thread Starter Perils

    (@perils)

    It was easy!

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Saving custom post title and custom post name’ is closed to new replies.