WordPress:致命错误:未捕获错误:调用未定义函数wp_get_attachment_src()

时间:2018-08-14 14:58:19

标签: php wordpress

我正在尝试制作一个动态引导轮播,我想在其中显示博客的缩略图和标题。

我正在使用bootstrap 4来满足我的需求。

当我隐含代码时,它在我的本地主机上得到了这个错误

  

致命错误:未捕获错误:在第35行的C:\ wamp64 \ www \ wpress \ wp-content \ themes \ bassfacemusics-in \ index.php中调用未定义函数wp_get_attachment_src()

这是轮播开始的完整代码行:

<div id="slider" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner">
        <?php
        $args = array(
            'cat' => 1,
            'post_per_page' => 4
        );
        $query = new WP_Query( $args );
        ?>
        <?php if($query->have_posts()) : ?>
            <?php $i = 0; ?>
            <?php while($query->have_posts()) : $query->the_post();
            $thumb_id = get_post_thumbnail_id();
            $thumb_url = wp_get_attachment_src($thumb_id,true); ?>
                <div class="carousel-item <?php if($i === 0): ?>active<?php endif; ?>">
                    <img src="<?php $thumb_url[0] ?>" alt="<?php the_title();?>">
                </div>
                <?php $i++; ?>
            <?php endwhile ?>
        <?php endif ?>
        <?php wp_reset_postdata(); ?>

    </div>

    <!-- Controls -->
        <a href="#slider" class="carousel-control-prev" data-slide="prev">
            <span class="carousel-control-prev-icon"></span>
        </a>
        <a href="#slider" class="carousel-control-next" data-slide="next">
            <span class="carousel-control-next-icon"></span>
        </a>
</div>

1 个答案:

答案 0 :(得分:0)

Wordpress中没有名为wp_get_attachment_src(int $id, bool $icon)的函数。

似乎您想使用wp_get_attachment_image_src()

要使用它,您需要更改以下行:

$thumb_url = wp_get_attachment_src($thumb_id,true);

对此:

$thumb_url = wp_get_attachment_image_src($thumb_id, 'thumbnail', true);

第二个参数具有以下内容:

  

(字符串|数组)(可选)图像大小。接受任何有效的图像尺寸,或以像素为单位的宽度和高度值(按此顺序)的数组。

     

默认值:“缩略图”

因为您似乎想设置第三个参数you can not simply skip the second parameter,但是需要显式设置它。这就是为什么'thumbnail'是作为调用中的参数提供的,尽管它是默认值,但并未省略。

结果将是包含有关图像信息的数组,如果发生错误,则为false

array [
    0 => url
    1 => width
    2 => height
    4 => is_intermediate
]

示例实现为:

$image = wp_get_attachment_image_src($attachment_id);

if ($image !== false) : ?>
    <img src="<?= $image[0] ?>" width="<?= $image[1] ?>" height="<?= $image[2] ?>" />
<?php endif ?>