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' );
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.