Support » Plugin: Machete » medium_large: 768×0 píxeles

  • Resolved Jairo Ochoa

    (@jairoochoa)


    Hola,

    ¿Qué pasa con la imagen medium_large 768×0 píxeles ?

    Es peor que la peste, ni Machete, ni añadiendo además una función en el functions.php

    function delete_thumbnail() 
    {
    	add_image_size( 'medium_large', 0, 0, false );
    }
    
    add_action('init', 'delete_thumbnail', 100);

    Y sigue existiendo.
    Para cualquier otra, porque en general los Themes abusan de tamaños, las logro modificar, pero esta es imposible.

    Saludos

Viewing 4 replies - 1 through 4 (of 4 total)
  • Plugin Author Nilo Velez

    (@nilovelez)

    Sí, en su día me costó un montón dar con ese código, pero funcionaba.

    Voy a ver si es que ha cambiado algo en cómo se declara

    Yo lo compruebo con WP Smush.
    En los ajustes de Tamaños de imagen te deja elegir entre Todos o Personalizado y ahí veo todos los tamaños que existen en el sistema.

    En algún caso sí aparece como medium_large (0x0) pero en otro medium_large (768×0) y por eso acabé añadiendo la función anterior … pero ni con esas.

    Es muy raro.

    Plugin Author Nilo Velez

    (@nilovelez)

    Ya lo he estado comprobando, y funcionar, funciona. Pero es retorcido y complicado.

    medium_large no es un tamaño de imagen normal, es un tamaño de imagen predefinido, así que no se puede quitar con remove_image_size()

    La función que hay ahora mismo en Machete (3.3.2), que es la misma que usas tú en el functions, lo que hace es definir un tamaño de imagen personalizado que se llama medium_large de tamaño 0x0. Eso funciona en casi todos los casos, con algunas excepciones.

    Si en vez de llamarse como un tamaño de miniatura, se usa intermediate_image_sizes() o intermediate_image_sizes_advanced(), en vez de devolverse la imagen personalizada, se devuelve la predefinida.

    Smush además es un cachondo y si no encuentra el tamaño medium_large lo saca directamente de la base de datos.
    https://plugins.trac.wordpress.org/browser/wp-smushit/trunk/core/class-wp-smush-core.php#L703

    Solución 1:
    Editar a mano la base de datos y poner 0 en las opciones medium_large_size_w y medium_large_size_w de wp_options

    Solución 2:

    • definir un tamaño personalizado medium_large
    • filtrar los arrays de intermediate_image_sizes y intermediate_image_sizes_advanced
    • filtrar las opciones medium_large_size_h y medium_large_size_h

    En el functions.php

    add_action('init', function() {
    
    	add_image_size( 'medium_large', 0, 0 );
    
    	add_filter('intermediate_image_sizes', function($sizes) {
    	    return array_diff($sizes, ['medium_large']);
    	});
    
    	add_filter('intermediate_image_sizes_advanced', function($sizes) {
    	    return array_diff($sizes, ['medium_large']);
    	});
    
    	add_filter( 'pre_option_medium_large_size_w', '__return_zero' );
    	add_filter( 'pre_option_medium_large_size_h', '__return_zero' );
    
    });

    Esta última opción es la que voy a meter en la siguiente versión de Machete en cuanto la haya probado.

    Es increíble, en las webs donde Machete no lograba eliminar medium_large y tuve que añadir mi función y aun así tampoco desaparecía, ahora está a 0x0.
    Se arregló solo sin hacer nada.

    He probado en una nueva web donde aparecía como 768×0.

    1.- Con mi función falla.
    2.- Si edito medium_large_size_w en options queda a 0x0
    3.- Restablecí el valor a 768 en options y uso tu función, queda también como 0x0

    Así que editar el options es una posibilidad y la otra es usar tu función.

    Eso sí, tu función hace un override del valor mientras exista, si se desactiva volvemos a tener 768×0.
    Esto está bien por si alguien se arrepiente.

    Otra posibilidad es que Machete cambiase directamente el valor de medium_large_size_w a 0.

    Saludos

Viewing 4 replies - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.