【问题标题】:disable srcset for specific page template禁用特定页面模板的 srcset
【发布时间】:2017-12-22 14:07:55
【问题描述】:

我正在尝试在 Wordpress 中为特定页面模板禁用响应式图像(这些模板用于不适合 srcset 的自定义 RSS 提要)。

add_filter( 'wp_calculate_image_srcset', '__return_false' );

在主题的functions.php中为所有图像完成工作。

但是一旦我使用条件标签,它就会完全停止工作,例如:

if ( is_page_template( 'page-mytemplate.php' ) ) {
add_filter( 'wp_calculate_image_srcset', '__return_false' );
}

任何想法如何让它工作?

【问题讨论】:

  • 也许我误解了你在做什么,但为什么不直接编辑模板文件来删除/替换添加 srcset 的函数呢?
  • srcset 来自 Wordpress 核心,因此生成它的代码不在模板中。在 Wordpress 中,您可以使用涵盖整个内容部分的功能添加帖子的内容...

标签: wordpress responsive srcset


【解决方案1】:

我也在尝试做同样的事情。仅在商店目录产品缩略图上关闭 srcset,但在所有页面上关闭。

(我在拇指悬停时增加了缩放图像效果,并且它悬停在低质量的 srcset 上)

function m_disable_srcset( $size ) {
if ( $size = 'shop_catalog' ) {
return false;
}}
add_filter( 'wp_calculate_image_srcset', 'm_disable_srcset' );

编辑:此代码有效:

/**
 * Remove the srcset attribute from post thumbnails 
 * that are called with the 'full' size string: the_post_thumbnail( 'full' )
 *
 * @link http://wordpress.stackexchange.com/a/214071/26350
 */
 add_filter( 'post_thumbnail_size', function( $size )
 {
     if( is_string( $size ) && 'shop_catalog' === $size )
         add_filter( 
             'wp_calculate_image_srcset_meta',  
              '__return_null_and_remove_current_filter' 
         );   
    return $size;
 } );

// Would be handy, in this example, to have this as a core function ;-)
function __return_null_and_remove_current_filter ( $var )
{
    remove_filter( current_filter(), __FUNCTION__ );
    return null;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 2012-03-30
    • 1970-01-01
    • 2016-03-10
    • 2017-08-31
    • 2016-12-01
    • 2011-06-26
    • 2023-03-12
    相关资源
    最近更新 更多