使用带有str_replace的if / else语句通过shortcode添加变量

时间:2016-08-26 06:46:13

标签: php html shortcode

我正在使用自定义短代码生成自定义支付宝按钮&将特定参数传递给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 -->

1 个答案:

答案 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

祝你好运!