Support

Account

Home Forums General Issues Modify shortcode to display field label? Reply To: Modify shortcode to display field label?

  • okay, you’ve lost me, why would you hardcore the field name when you are passing the field name as part of the shortcode attributes?

    This is the code from ACF

    
    
    function acf_shortcode( $atts )
    {
    	// extract attributs
    	extract( shortcode_atts( array(
    		'field'			=> '',
    		'post_id'		=> false,
    		'format_value'	=> true
    	), $atts ) );
    	
    	
    	// get value and return it
    	$value = get_field( $field, $post_id, $format_value );
    	
    	
    	if( is_array($value) )
    	{
    		$value = @implode( ', ', $value );
    	}
    	
    	
    	return $value;
    }
    

    $field in this code is the field name.

    In your code you are resetting $field to the value returned by get_field_object.

    try something like this

    
    function sc_headline( $atts )
    {
        // extract attributs
        extract( shortcode_atts( array(
            'field'			=> '',
            'field_name'		=> '',
            'post_id'		=> false,
            'format_value'	=> true
        ), $atts ) );
    	
    	$value = get_field( $field, $post_id, $format_value);
    	$field_object = get_field_object($field);
    	if (!$field_object) {
    		return '';
    	}
    	
          if (!$value) {
     return '';
    }
        if( is_array($value) )
        {
            $value = @implode( ', ', $value );
        }
    	return '<h3><strong>' . $field['label'] . '</strong></h3>' . $value . '<br>';
        //return $value;
    }
    add_shortcode( 'acf-headline', 'sc_headline' );