在產品頁面上,我擁有的圖片大小為 500px 寬。一切都好。但是在移動設備上顯示如此大的影像是沒有意義的。我已經用css做了所有事情,看起來很棒,但我想知道現在是否可以進行移動檢查,如果可以,輸出不同大小的圖片?
我添加了圖片的大小:
if (function_exists('add_image_size')) {
add_image_size('woocommerce_thumb_m', 200, 9999);
}
然后在functions.php中檢查它是否是移動的,如果是,我們使用新的大小。
if (is_mobile()) {
add_filter('woocommerce_get_image_size_single', function ($size) {
return 'woocommerce_thumb_m';
});
}
但是,該站點出現錯誤(由于某種原因我無法閱讀,甚至define('WP_DEBUG', true);沒有幫助)
uj5u.com熱心網友回復:
is_mobile()不是有效且現有的 WordPress 功能,wp_is_mobile()是檢查移動設備的正確功能。
由于您使用了錯誤的功能,因此您會收到錯誤,因為它在系統中不存在。
在 WordPress 官方檔案中閱讀更多關于 wp_is_mobile的資訊。
并且wp_is_mobile檢查應該在過濾器函式內部是否您的函式沒有包裝在函式內部。
更新
woocommerce_get_image_size_single鉤子不適用于在使用獲取影像功能進行渲染時更改影像大小。woocommerce_get_image_size_single用于在 WordPress 系統中添加影像大小時更改寬度和高度和裁剪選項。
此要求的正確鉤子將是woocommerce_gallery_image_size此過濾器鉤子回傳將用于呈現產品主影像和圖庫影像的影像大小。我們將必須檢查回傳的影像大小是否為woocommerce_single是,然后我們將從該過濾器回傳我們的自定義拇指大小。
以下是撰寫函式的兩種正確方法:
1:wp_is_mobile內部過濾功能,不使用包裝功能
add_filter(
'woocommerce_gallery_image_size',
function ( $size ) {
// Check if is a mobile device and the size is woocommerce_single then return another small size image.
// Using the size check we apply the new thumbnail size to the main image only not to gallery thumbnails.
return wp_is_mobile() && 'woocommerce_single' === $size ? 'woocommerce_thumb_m' : $size;
}
);
2:使用包裝函式并將其與init動作一起添加。
add_action(
'init',
function() {
// If not mobile device do nothing.
if ( ! wp_is_mobile() ) {
return;
}
add_filter(
'woocommerce_gallery_image_size',
function ( $size ) {
// Using the size check we apply the new thumbnail size to the main image only not to gallery thumbnails.
return 'woocommerce_single' === $size ? 'woocommerce_thumb_m' : $size;
}
);
}
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/513578.html
下一篇:僅當有10行或更多行時才回傳結果
