为什么会收到错误消息:PHP警告:高级自定义字段的字符串偏移量'url'不合法?

时间:2018-08-04 15:02:43

标签: php wordpress advanced-custom-fields

我正在使用“高级自定义字段”,但是显示标头图片时遇到了问题。我有一个Repeater字段,其中包含一个子行“ mast-head-images”-这只是一个Image字段类型。在字段设置中,我提取图像数组,并使用该数组获取标记中的URL。但是,我不断收到与“ alt”属性相同的错误“错误的字符串偏移量'url'”。

我使用print_recho来显示返回的值,并且正在返回正确的图像URL。但是,图像不会显示。

另外,另一件奇怪的事是,我检查了检查器,并试图找到24张图像...我只想添加3张图像。其他图像从哪里来?同样,所有图像都不具有src属性。甚至更奇怪的是,某些图片src具有随机网址:

    <img src="" alt="" class="carousel-container__img carousel-img-0">
    <img src="h" alt="h" class="carousel-container__img carousel-img-2">
    <img src="1" alt="1" class="carousel-container__img carousel-img-8">
    <img src="i" alt="i" class="carousel-container__img carousel-img-12">
    <img src="2" alt="2" class="carousel-container__img carousel-img-14">

我已经确保我是最新的并且正在使用最新版本的AFC。我不知道是否应该更改PHP版本? (当前为7.2.1-我尝试恢复为旧版本,但没有任何更改。)

我还停用了其他插件,以测试它与插件没有冲突-但还是没有。

我实际上已经对URL进行了硬编码,以排除该路径中的任何内容,并且效果很好。 -我的图像显示。我只需要使其与AFC一起使用即可。

<header>
<?php  ?>
    <?php 
    $defaults = array (
        'theme_location' => 'main-navigation',
        'menu_class' => 'no-bullet',
        'container' => false
    ); ?>

    <nav class="main-header-nav">
        <img src="<?php echo get_template_directory_uri();?>/icons/Hilton-logo.svg" alt="Hilton Logo" class="header-logo">
        <?php  wp_nav_menu($defaults); ?>
    </nav>


    <?php 

          $topMastHeader = get_field('top_header');
          $bottomMastHeader = get_field('bottom_header');

?>




    <h3 class="header-text tagline">
        <?php echo $topMastHeader; ?>
    </h3>
    <h1 class="header-text">
        <?php echo $bottomMastHeader; ?>
    </h1>



    <div class="cycle-slideshow carousel-container" data-cycle-fx="scrollHorz" data-cycle-timeout="0" data-cycle-prev="#prev" data-cycle-next="#next" data-cycle-caption=".carousel-counter" data-cycle-caption-template="<span class='bigger'>{{slideNum}}/ </span> <span class='smaller'>{{slideCount}}</span>">
        <div class="cycle-caption"></div> 

           <?php  while( have_rows('header_carousel') ): the_row(); 

        // vars
        $mastHeadImages = get_sub_field('mast_head_images');

     ?>     

        <?php  $i = 0;
        foreach( $mastHeadImages as $image ): ?>
            <img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" class="carousel-container__img carousel-img-<?php echo $i; ?>" />
        <?php $i++; endforeach;  ?>


<!--    IMAGE URL HARD CODED     -->
<!--
       <img src="http://localhost:8888/wordpress/wp-content/uploads/2018/07/premium-king-room-1900x1060-1345x750.jpg" alt="">

       <img src="http://localhost:8888/wordpress/wp-content/uploads/2018/07/woman-at-canopy-central-cafe-1900x1060-1-1345x750.jpg" alt="">

       <img src="http://localhost:8888/wordpress/wp-content/uploads/2018/07/hotel-exterior-1900x1060-1-1345x750.jpg" alt="">

-->

        <div class="masthead_overlay"></div>
    </div>
    <div class="center carousel-control-container">
        <a href="#" id="prev">
            <span class="icon-arrow-left"></span>
        </a>
        <a href="#" id="next">
            <span class="icon-arrow-right"></span>
        </a>
        <div class="carousel-counter">

        </div>
    </div>



  <?php endwhile; ?>

</header>

1 个答案:

答案 0 :(得分:0)

晚于该线程,但我们最近遇到了类似的问题,似乎在writeHTML()函数中涉及到多个href链接。将tcpdf.php中第18807行周围的代码行更改为以下内容以对其进行排序:

if(is_array($this->HREF)){
     $this->HREF['url'] = $tag['attribute']['href'];
}else{
     $this->HREF = array('url'=>$tag['attribute']['href']);
}