我在构建块构建器中制作按钮转发器,所有这些都是通过高级自定义字段创建的,一切正常并且打印正常,除非我到达我必须重置我的$ button_colour的部分。它似乎正在重置它没关系但是当我转储新变量($ first_colour)时它返回" null"。
目的是让他们能够选择三个下拉列表中的一个(黑色,绿色或白色),然后将其添加为按钮的类,从而为其提供相应的样式。
我已经开始研究我之前做过的另一个项目了,所以我从一个使用" Custom Field Suite"的项目中提取了这个代码。所以我理解这可能不是正确的做法。
非常感谢任何帮助。
echo "<div class=\"block-inner\">\n";
$buttons = get_sub_field('button');
var_dump($buttons);
if(!empty($buttons)){
echo "<div id=\"button-wrapper\" class=\"button-wrapper\">\n";
foreach($buttons as $button){
$button_title = $button['button_title'];
$button_colour = $button['button_colour'];
$background_colour = $button['background_colour'];
$add_class = $button['add_a_class'];
$link_url = $button['destination_url'];
var_dump($add_class);
reset($button_colour);
$first_colour = key($button_colour);
var_dump($first_colour);
echo "<div id=\"button-container\" class=\"button-container\">\n";
printf("<a class='%s %s' href='%s'>%s</a>\n",
($first_colour=="green")?"green-btn":(
($first_colour=="white")?"white-btn":(
($first_colour=="black")?"black-btn":""
)
),
!empty($add_class)?$add_class:"",
$link_url,
$button_title
);
}
}
echo "</div>\n";
echo "</section>\n";er code here
答案 0 :(得分:0)
我自己找到答案你根本不需要重置ACF直接进入==检查。代码如下:
echo "<div class=\"block-inner\">\n";
$buttons = get_sub_field('button');
//var_dump($buttons);
if(!empty($buttons)){
echo "<div id=\"button-wrapper\" class=\"button-wrapper\">\n";
foreach($buttons as $button){
$button_title = $button['button_title'];
$button_colour = $button['button_colour'];
$background_colour = $button['background_colour'];
$add_class = $button['add_a_class'];
$link_url = $button['destination_url'];
//var_dump($add_class);
//var_dump($button_colour);
echo "<div id=\"button-container\" class=\"button-container\">\n";
printf("<a class='%s %s' href='%s'>%s</a>\n",
($button_colour=="green")?"green-btn":(
($button_colour=="white")?"white-btn":(
($button_colour=="black")?"black-btn":""
)
),
!empty($add_class)?$add_class:"",
$link_url,
$button_title
);
}
}
echo "</div>\n";
echo "</section>\n";