1

WordPress プラグインで実行される関数があり、wp_debug がアクティブ化されると、このエラー メッセージが表示されます。

"未定義のオフセット: 568 行目の /…/wp-content/plugins/advanced-widget-pack/lib/advanced_widget_pack.class.php の 0 "

プラグインで使用される関数は次のとおりです。

/**
 * Retrieves the image for a post
 *
 * Uses the post_thumbnails if available or
 * searches through the post and retrieves the first found image for use as thumbnails
 */
function featured_image_thumb($size = 50) {
    global $post;
    // If a featured image has been set, use the featured-thumbnail size that was set above with the class of 'thumb'
    if(has_post_thumbnail() ) {
        echo '<a href="'.get_permalink().'" title="'.get_the_title().'" >';
        the_post_thumbnail(array($size,$size),array('class' => 'thumb'));
        echo '</a>';
    }
    // If a featured image is not set, get the first image in the post content
    else {
        $first_img = '';
        ob_start();
        ob_end_clean();
        $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
        $first_img = $matches[1][0];

        // Define a default fallback image in case a featured image is not set and there are no images in the post content
        if(empty($first_img)){
            $first_img = WP_PLUGIN_URL.'/advanced-widget-pack/images/nothumb.png';
        }

        // Generate the HTML code to display the image and resize the image with timthumb.php
        return '<a title="'.get_the_title().'" href="'.get_permalink().'"><img class="thumb" src="'.WP_PLUGIN_URL.'/advanced-widget-pack/timthumb.php?src=' . $first_img .'&w='.$size.'&h='.$size.'" alt="" /></a>';
    }
}

行 568 またはエラーが発生している場所は、コードの次のセクションです。

$first_img = $matches[1][0];

このエラーを防止または修正する方法がわかりません。

どんな助けやアドバイスも大歓迎です。ありがとう

4

3 に答える 3

1

私の場合、条件付きの抱擁は私のためにそれをしました:

if( $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); )

すべての通知が消えました!:)

于 2013-11-16T13:58:58.423 に答える
0

その上の preg_match が何も見つからなかったため、配列の最初のインデックスがおそらく定義されていないことを意味します。本当に心配する必要はありませんが、ob_end_clean の後に次を配置することで対処できます。

 $matches[1][0] = '';
于 2012-11-07T04:03:37.403 に答える