PHP尝试在sprintf中获取返回值



我正在尝试输出占位符属性值,但我尝试了很多,因为在这种情况下需要花费8个小时,请检查下面的问题。

我的功能:

if ( $tag->has_option( 'placeholder' ) or $tag->has_option( 'watermark' ) ) {
$atts['placeholder'] = $value;
$forplaceholder['placeholder'] = $value;
$value = '';
}
$forplaceholder = wpcf7_format_atts( $forplaceholder);
$html = sprintf(
'<span class="wpcf7-form-control-wrap %4$s">%1$s<input %2$s />%3$s</span>',
sanitize_html_class( $tag->name ), $atts, $validation_error, $forplaceholder
);

在这种情况下,我将退出%4$splaceholder="something"

示例输出:<span class="wpcf7-form-control-wrap placeholder="something"">

如何获得placeholder="something"something的值?

我想你想要类似的东西

$html = sprintf(
'<span class="wpcf7-form-control-wrap %4$s">%1$s<input %2$s />%3$s</span>',
sanitize_html_class( $tag->name ), $atts, $validation_error, 
$forplaceholder['placeholder'] ?? ''
);

使用$forplaceholder['placeholder']这样做会放入实际值,而不是使用wpcf7_format_atts()对其进行编码。?? ''意味着,如果没有设置值,它不会抛出错误,只会在.中放入一个空白值

最新更新