我正在使用自定义短代码生成自定义支付宝按钮&将特定参数传递给paypal结帐表单。
我正在使用str_replace函数将短代码中定义的属性传递给html表单。
我想设置默认样式类&如果未在短代码中定义为属性,则为默认标题。
我的php:
Multiprocessing
这是我的HTML
function paypal_button_func($attrs){
$class=$attrs['class']; //Added button style class variable
$title=$attrs['title']; //Added button title variable
if( isset( $atts['title'])) //add button title to the form html
{
return $html=str_replace('[title]',$title,$html);
}
//This sets the default title if not defined
else {
return $html=str_replace ('[title]','SIGN UP NOW',$html);
}
我成功使用以下代码将短代码属性传递给html,但问题是如果短代码中没有定义属性,它会将[class]和[title]输出为值,这是不是我想要发生的事。
<input type="submit" class="[class]" value="[title]" /> <!-- updated class and value for addtl shortcode parameters -->
答案 0 :(得分:1)
只需确保正确初始化替换,我建议在创建变种时使用if / else简写:
$class = isset($attrs['class']) ? $attrs['class'] : 'default-class-name'; //Added button style class variable
$title = isset($attrs['title']) ? $attrs['title'] : 'SIGN UP NOW'; //Added button title variable
这样你的html总会获得替换,无论是attrs值还是默认值。
我也注意到你在isset($atts['title'])
上有一个拼写错误,你可能想要$attrs
而不是$atts