【问题标题】:Did anyone noticed this problem in wordpress?有人在wordpress中注意到这个问题吗?
【发布时间】:2025-12-14 11:20:07
【问题描述】:

我发现了一个奇怪的错误,在 wordpress 中裁剪图像

我使用 WP_Customize_Cropped_Image_Control 来裁剪图像。在那里我设置了宽度 750 & 高度 500

效果很好,但在裁剪其他图像时显示错误

*这让我发疯了,花了这么多小时后,我意识到(错误和不显示裁剪框)它与图像一起发生 与我在 WP_Customize_Cropped_Image_Control 中提供的纵横比相同(如果纵横比匹配则发生错误)

如果我不提供纵横比并设置 flex 宽度和高度,那么效果很好

*我注意到我有一个 1920 X 742 的宽图像 它占用了Wordpress的Crop Image modal的整个宽度,因此也会导致错误(不显示裁剪框并显示错误)

如果我调整浏览器窗口的大小,它会显示裁剪框,并且可以裁剪图像而不会出现任何错误

【问题讨论】:

  • 我遇到了您在问题中提到的完全相同的问题。我一直在寻找这个问题好几个小时终于遇到了你的问题,至少我也可以说这似乎是一个错误。您找到解决方法了吗?

标签: wordpress image


【解决方案1】:

经过长时间的研究,我了解到这是 Wordpress 使用的 jQuery 库的一个已知错误,并且该库已经很长时间没有更新了。有一个解决方法,但它有点棘手。如果你真的需要它,这里是好奇的解决方案: 该文件是/wp-includes/js/imgareaselect/jquery.imgareaselect.js 复制您自己的版本(不要更改核心 WP 文件)并将其放在模板目录中的某个位置,例如 js 目录。找到这段代码sn -p:

imgWidth = $img.innerWidth();
imgHeight = $img.innerHeight();

改成这个

imgWidth = Math.ceil($img.innerWidth());
imgHeight = Math.ceil($img.innerHeight());

然后您应该出列和注销核心文件并将您的版本入队。如果你不知道怎么做,我也把它放在这里给需要的人。 将代码 sn-p 放入您的 functions.php 文件中。

// change custom scripts example
add_action( 'wp_print_scripts', 'cleanup_scripts', PHP_INT_MAX);
add_action( 'wp_print_footer_scripts', 'cleanup_scripts', PHP_INT_MAX);
function cleanup_scripts() {
    wp_deregister_script('imgareaselect');
    wp_dequeue_script('imgareaselect');
    wp_enqueue_script('imgareaselect', get_template_directory_uri() . '/js/jquery.imgareaselect.min.js', array('jquery'), '1.0', true);
}

'imgareaselect' 是 Wordpress 核心使用的文件句柄。 如果您想更深入地挖掘,我还将源代码放在这里。 https://github.com/google/web-stories-wp/issues/8398

【讨论】:

    最近更新 更多