WP:高级自定义字段。灵活的内容+转发器字段。在内联CSS中使用自定义字段

时间:2013-07-04 17:11:28

标签: php html css wordpress

我正在尝试使用不同宽度的左下边框和特定颜色设置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元素上方。

我确定我没有正确使用高级自定义字段标记。

帮助!

1 个答案:

答案 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()。