gpt4 book ai didi

wordpress - 如何阻止 Wordpress 缩小大图像? (-scaled.jpg)

转载 作者:行者123 更新时间:2023-12-04 12:40:47 25 4
gpt4 key购买 nike

当我从 Unsplash.com 插入新图像时,图像大小“完整”返回一个缩放图像,名称文件末尾带有“-scaled.jpg”,并且始终限制为 2560 像素。那么如何检索图像的真实“完整”尺寸?

最佳答案

您必须首先通过在您的functions.php中添加以下代码行来禁用WordPress 5.3中引入的此“功能”:

add_filter( 'big_image_size_threshold', '__return_false' );
这将禁用任何 FUTURE 上传的缩小。但是对于现有图像,您必须更新图像大小。
不幸的是,WordPress 团队再一次证明了它的无能——他们没有提供任何功能来更新现有附件的 postmeta,而且显然他们没有给出任何关于这个问题的信息,你可以看到 here, where dozens of people expressed there anger about this so called feature .
我今天创建了一个站点,其中包含数千个带有来自 Unsplash.com 的精选图片的虚拟帖子,我需要在该站点上使用完整尺寸的图片。运行下载并创建博客文章和附件文章的脚本需要几个小时。因此,一旦我发现新的“功能”以及如何禁用它,我就无法删除所有帖子并再次运行虚拟脚本。
所以我写了另一个脚本,这花了我很多时间......
您需要将以下代码放在一个 php 文件中,然后从浏览器或终端运行/调用它。不要忘记替换 wp-load.php 文件的路径。在我的本地机器上,几千个附件帖子只需要几秒钟。
<?php

require_once( "/absolute/or/relative/path/to/wordpress/wp-load.php" );

ini_set( 'max_execution_time', 3600 );
set_time_limit( 3600 );

$pdo = new PDO( "mysql:dbname=" . DB_NAME . ";host=" . DB_HOST, DB_USER, DB_PASSWORD );

/**
* replace _wp_attached_file meta_key
**/

global $wpdb;
$wp_postmeta = $wpdb->prefix . "postmeta";

try {
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );//Error Handling

$sql = "UPDATE $wp_postmeta SET meta_value = REPLACE(meta_value,'-scaled.jpg','.jpg') WHERE meta_key='_wp_attached_file' AND meta_value LIKE '%-scaled.jpg%'";
$result = $pdo->exec( $sql );
print_r( $result );

} catch ( PDOException $e ) {
print_r( $e->getMessage() );
}


/**
* replace _wp_attachment_metadata meta_key
**/

$image_metas = [];
try {
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );//Error Handling
$sql = "SELECT * FROM $wp_postmeta WHERE meta_value LIKE '%-scaled.jpg%' AND meta_key='_wp_attachment_metadata'";
$statement = $pdo->query( $sql );
$image_metas = $statement->fetchAll();
foreach ( $image_metas as $meta ) {
$meta_value = unserialize( $meta["meta_value"] );
$file = $meta_value["file"];
$meta_value["file"] = str_replace( "-scaled.jpg", ".jpg", $file );
update_post_meta( $meta["post_id"], $meta["meta_key"], $meta_value );
$result = get_post_meta( $meta["post_id"], $meta["meta_key"] );
print_r( $result );
}
} catch ( PDOException $e ) {
print_r( $e->getMessage() );
}

关于wordpress - 如何阻止 Wordpress 缩小大图像? (-scaled.jpg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59515056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com