WordPress Include ‘print_f’ in WP_Customize_Control array

The question:

I have the following problem: I want to add print_f in an array in wordpress.

printf( __('Option to share on %s', 'themename'), 'name')

However, the following code does not work properly for me. Instead of the actual result, it throws out “30”
.

$wp_customize->add_control(
                        new WP_Customize_Control(
                                $wp_customize,
                                'display-name'
                                array(
                                        'label' => printf( __('Option to share on %s', 'theme-name'), 'name'),
                                        'section' => 'share',
                                        'settings' => 'display-name',
                                        'type' => 'checkbox',
                                        'description' => 'Just a Description.'
                                        'active_callback' => 'share_callback',
                                )
                        )
                );

Hope someone can help me…

The Solutions:

Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.

Method 1

As documented (always read the docs), printf() returns:

…the length of the outputted string.

That’s why you’re getting 30.

If you’re adding a value to an array or a string you need to use a function that returns a value. Not one that prints. printf() prints the value and returns the length of the printed value. To return a formatted string, you need to use sprintf():

'label' => sprintf( __('Option to share on %s', 'theme-name'), 'name'),

See here for more on the difference between returning and printing/echoing.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Comment