JavaScript解决方案
由于原始答案已经可以使用字符串替换,但必须针对每个用例进行更改,这里有一个使用快速正则表达式的解决方案
.test()
包装在一个自调用函数中,该函数使用默认方法防止事件(如以下链接)发生。
此插件将删除第一次出现的任何2-4位数字,这些数字之间用x
然后是另一个2-4位数。一些示例
image-name-123x456.ext
image_name123x456.ext
imageName1230x45.ext
imageName12x4567.ext
这是实际的插件。您只需填写一位:实际的选择器。
To Do: 您唯一需要做的就是提供实际的选择器(而不是.class-of-the-thumbnail-image
) 对于图像。最好是(a)填写某个类,然后在缩略图中添加一个过滤器,以便将该类添加到您想要定位的每个图像中。
<?php
defined( \'ABSPATH\' ) or exit;
/* Plugin Name: (#83993) Full image size */
add_action( \'wp_footer\', \'wpse83993FullImageSize\' );
function wpse83993FullImageSize()
{
?>
<script type="text/javascript">
( function( $ ) {
$( \'.thumbnails .zoom\' ).on( \'click\', function( event ) {
event.preventDefault();
var $img = $( this ).find( \'img\' ),
$src = $img.attr( \'src\' ),
search = /^([-]?)([\\d]{2,4})((\\s*)(x)(\\s*))([\\d]{2,4})$/;
// Regex .test() is fast, so we use it *before* we actually do something
if ( search.test( $src ) ) {
var $url = $src.replace( search, \'\' );
$( \'.class-of-the-thumbnail-image\' ).attr( \'src\', $url );
}
} );
} )( jQuery );
</script>
<?
}
您的插件可以连接的一个可能点是将其与上的过滤器相结合
post_thumbnail_html
. 此筛选器有一些参数:
$html, $post_id, $post_thumbnail_id, $size, $attr
您可以使用它来更改HTML。
另一个,也许更好的是wp_get_attachment_image_attributes
-内部过滤器wp_get_attachment_image()
, 调用的get_the_post_thumbnail()
, 其本身由the_post_thumbnail()
.
apply_filters( \'wp_get_attachment_image_attributes\', $attr, $attachment );
只需在上面的插件中添加以下内容:
add_filter( \'wp_get_attachment_image_attributes\', \'wpse83993AddDefaultThumbnailClass\', 20, 2 );
function wpse83993AddDefaultThumbnailClass( $atts, $attachment )
{
$atts[\'class\'] .= "class-of-the-thumbnail-image";
return $atts;
}
服务器端解决方案:PHP比任何其他方法都更容易使用以下过滤器,以防它符合您的用例。
apply_filters( \'post_thumbnail_size\', $size );
您可以添加,只需调用每个帖子缩略图的完整大小,就可以了。然后通过CSS缩小图像大小。