我使用此代码将Gists嵌入WordPress中。它工作正常,Gists出现,但我在debug.log文件中不断收到错误: PHP注意:未定义的偏移量:第333行/ functions.php中的2
(第333行是esc_attr($matches[2])
)
wp_embed_register_handler( 'gist', '/https?:\/\/gist\.github\.com\/([a-z0-9]+)(\?file=.*)?/i', 'embed_handler_gist' );
function embed_handler_gist( $matches, $attr, $url, $rawattr ) {
$embed = sprintf(
'<script src="https://gist.github.com/%1$s.js%2$s"></script>',
esc_attr($matches[1]),
esc_attr($matches[2])
);
return apply_filters( 'embed_gist', $embed, $matches, $attr, $url, $rawattr );
}
答案 0 :(得分:2)
该错误仅表示$matches[2]
不存在。您可以在尝试访问变量之前检查其是否存在,以避免此错误。
if( isset($matches[2]) )
esc_attr($matches[2]);
或者如果您要分配默认值:
$value = isset($matches[2]) ? $matches[2] : false;
答案 1 :(得分:1)