使用“get_post_thumbnail_id($ post-> ID)”时出现错误“未定义变量:发布”

时间:2013-09-03 16:32:33

标签: php wordpress debugging

我有一行php来获取我的自定义wordpress小部件中的缩略图:

$footer_recent_thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'footer-recent-thumbnail' );

它产生两个php错误:

NOTICE: customwidgets.php:75 - Undefined variable: post
NOTICE: customwidgets.php:75 - Trying to get property of non-object

我该如何解决这个问题?这是我用来在博客上获取缩略图的相同的php,并没有在那里给出错误。

2 个答案:

答案 0 :(得分:7)

我的猜测是这个代码在一个函数中,如下所示:

function doSomething($someparams) {
     // ...
     $fotoer_recent_thumb = // .....
     // ...
}

在这种情况下,$post在此范围内不存在,必须通过在函数中添加以下行来导入:

global $post;

或者,更干净地将其作为参数传递。

答案 1 :(得分:2)

尝试这种方式:

if (has_post_thumbnail()) { 
    $footer_recent_thumb = wp_get_attachment_image_src( 
        get_post_thumbnail_id(get_the_ID()) , 'footer-recent-thumbnail'
    );

    // Do more stuff
}