我编写了将相关文章加载到WordPress单篇文章中的代码。我有js可以调整精选图片的大小。当特色图片成为帖子的一部分时, 我遇到了错误。
TypeError: Cannot read property 'width' of undefined at getFeaturedImage (related.js:24)
如果帖子中没有特色图片, 则相关帖子一切正常。
注意:我正在使用WP RIG开发该站点。
以下代码来自related.js文件。
// Get the featured image if there is a featured image.
function getFeaturedImage(postObject) {
// If there is no featured image, exit the function returning nothing.
if (0 === postObject.featured_media) {
return "";
} else {
let featuredObject = postObject._embedded["wp:featuredmedia"][0];
console.log(featuredObject);
let imgWidth = featuredObject.media_details.sizes.wpRigRelated.width;
let imgHeight = featuredObject.media_details.sizes.wpRigRelated.height;
return `
<figure class="related-post__image">
<img
src="${featuredObject.media_details.sizes.wpRigRelated.source_url}"
'width="${imgWidth}"
'height="${imgHeight}"
'alt="" ' +
>
</figure>`;
}
}
#1
如果特色图片是帖子的一部分, 则FeatureObject可能是未定义的(根据你的解释)。
如果是这种情况, 在尝试访问对象的宽度和高度之前, 请检查其是否未定义。
if(typeof featuredObject === "undefined") {
return "";
}
因此, 如果未定义, 此函数将返回一个空字符串, 但如果已定义, 它将继续执行脚本。
(考虑在你的开发人员工具中共享console.log(featuredObject);的输出, 因为它可能会指出未明确定义的内容)
评论前必须登录!
注册