我正在寻找一种更加离散和自动的方法。这改变了wp_create_thumbnail
我想。
这就是你错的地方。以下是的完整代码wp_create_thumbnail()
从核心:
function wp_create_thumbnail( $file, $max_side, $deprecated = \'\' ) {
if ( !empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, \'1.2\' );
$thumbpath = image_resize( $file, $max_side, $max_side );
return apply_filters( \'wp_create_thumbnail\', $thumbpath );
}
这个函数本身没有多大作用。相反,如果你需要改变什么,那就是
image_resize()
... 但改变核心功能仍然是错误的做法。
为什么不更改核心文件呢?主流开发人员通常不赞成更改核心文件。如果您更改了core,并且没有重新提交对项目的更改,那么您将得到WordPress的分叉版本-下次发布更新时,您必须在更新后重新编辑core文件以维护新功能。
在许多情况下,您想要对core进行的更改只适用于少数人,通常只有您自己。除非这些更改将使大多数WP用户受益,否则当前开发周期范围之外的任何核心更改通常会稍后提交,或在Trac中留下一个;“wontfix”;决议
对你或我有用的东西不属于核心项目,而是属于插件。
正确的方法是创建自己版本的image_resize()
在插件中。然后构建自己的my_create_thumbnail()
符合以下条件的功能:
function my_create_thumbnail( $file, $max_side ) {
return apply_filters( \'wp_create_thumbnail\', my_image_resize( $file, $max_side, $max_side ) );
}
此函数的签名与
wp_create_thumbnail()
并触发相同的过滤器,因此它可以作为所有其他插件和主题脚本中原始函数的一对一替换。