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…
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.
As documented (always read the docs),
…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
'label' => sprintf( __('Option to share on %s', 'theme-name'), 'name'),
See here for more on the difference between returning and printing/echoing.