我正在尝试使用不同宽度的左下边框和特定颜色设置H4元素的样式,该颜色由客户端填充CMS的自定义字段定义。我的CMS布局是正确的,但我知道下面的代码不是。我的问题区域特别是H4,代码的其他部分正确呈现。
<?php
if (get_field("sponsorlogos")){
while (has_sub_field("sponsorlogos")){
if (get_row_layout() == "sponsor_category_title"){ // Sponsor Category Title
echo '<h4 style="border-left: 10px solid '.the_sub_field('sponsor_category_title_colour').' !important; border-bottom: 1px solid '.the_sub_field("sponsor_category_title_colour").' !important; margin: 40px 0 15px 0;">';
the_sub_field("sponsor_category_title_text");
echo '</h4>';
}
if (get_row_layout() == "sponsor_logo_container"){ // Sponsor Repeater Field
$rows = get_sub_field('sponsor_item');
if ($rows){
echo '<ul id="sponsor-logo-container">';
foreach($rows as $row){
echo '<li class="sponsor-logo"><a class="logo-link" target="_blank" href="'.$row['sponsor_link'].'"><img width="190" height="110" src="'.$row['sponsor_logo'].'" alt="'.$row['sponsor_title'].'"class="logo-image grayscale" /></a><span class="staff-name">'.$row['sponsor_support'].'</span></li>';
}
echo '<div style="clear:both;"></div>';
echo '</ul>';
}
}
}
}
?>
结果标记如下:
<h4 style="border-left: 10px solid !important; border-bottom: 1px solid !important; margin: 40px 0 15px 0;">Bronze</h4>
你可以看到它省略了十六进制'#xxxxxx'颜色部分。
我应该重申,因为颜色十六进制在标记中成功吐出两次(如预期的那样),但它出现在H4元素上方。
我确定我没有正确使用高级自定义字段标记。
帮助!
答案 0 :(得分:0)
尝试从
更改PHP代码echo '<h4 style="border-left: 10px solid '.the_sub_field('sponsor_category_title_colour').' !important; border-bottom: 1px solid '.the_sub_field("sponsor_category_title_colour").' !important; margin: 40px 0 15px 0;">';
到
echo '<h4 style="border-left: 10px solid '. get_sub_field('sponsor_category_title_colour').' !important; border-bottom: 1px solid '.get_sub_field("sponsor_category_title_colour").' !important; margin: 40px 0 15px 0;">';
换句话说,用get_sub_field()替换_sub_field()。当您已经有一个echo调用时,应该使用get_sub_field()函数。当前面没有回声时,你使用the_sub_field()。