如何更改WooCommerce缩略图裁剪位置?

时间:2016-07-07 02:45:52

标签: php wordpress woocommerce crop image-size

我正在尝试更改WooCommerce缩略图裁剪位置。我发现这段代码可以帮助改变大小:

add_action( 'init', 'yourtheme_woocommerce_image_dimensions', 1 );

/**
 * Define image sizes
 */
function yourtheme_woocommerce_image_dimensions() {
    $catalog = array(
        'width'     => '100',   // px
        'height'    => '100',   // px
        'crop'      => 0
    );

    // Image sizes
    update_option( 'shop_catalog_image_size', $catalog );       // Product category thumbs
}

我做了一些尝试,例如将 0 更改为 array("center", "bottom") ,但它无效:

function yourtheme_woocommerce_image_dimensions() {
    $catalog = array(
    'width'   => '300', // px
    'height'  => '400', // px
    'crop'    => 'array("center", "bottom")'
  );

  // Image sizes
  update_option( 'shop_catalog_image_size', $catalog );     // Product category thumbs
}

这也没有成功:

if (function_exists( 'add_image_size' )){
  add_image_size( 'shop_catalog', 300, 400, array( 'center', 'bottom' ) );
}

无论如何我可以改变吗?

感谢。

1 个答案:

答案 0 :(得分:3)

要更改活动子主题或主题中的现有图像大小(裁剪选项),您需要使用'after_switch_theme' WordPress挂钩。

由于WordPress 3.9+是许多新功能中的一个很棒的新功能,因此现在可以控制WordPress中上传图像裁剪位置的附加功能。
我不知道作物药水高级选项是否适用于woocommerce图像尺寸,你必须测试它。

裁剪位置的可用选项为:

left top
left center
left bottom
right top
right center
right bottom
center top
center center
center bottom

所以基于来自wooThemes的this snippet以及WordPress的(相对较新的)裁剪选项,你可以试试这个:

function yourtheme_woocommerce_image_dimensions() {
    global $pagenow;

    if ( ! isset( $_GET['activated'] ) || $pagenow != 'themes.php' ) {
        return;
    }
    $catalog = array(
        'width'     => '300',   // px
        'height'    => '400',   // px
        'crop'      => array( 'center', 'bottom' ) // New crop options to try.
    );
    /* $single = array(
        'width'     => '600',   // px
        'height'    => '600',   // px
        'crop'      => 1        // true
    );
    $thumbnail = array(
        'width'     => '120',   // px
        'height'    => '120',   // px
        'crop'      => 0        // false
    ); */
    // Image sizes
    update_option( 'shop_catalog_image_size', $catalog );       // Product category thumbs
    /* update_option( 'shop_single_image_size', $single );      // Single product image
    update_option( 'shop_thumbnail_image_size', $thumbnail );   // Image gallery thumbs */
}
add_action( 'after_switch_theme', 'yourtheme_woocommerce_image_dimensions', 1 );

您需要将此代码段粘贴到活动子主题或主题的function.php文件中...

您可以评论/取消注释代码(或删除部分内容)以满足您的需求。此代码将覆盖WooCommerce设置中的定义选项>产品>显示(产品图片)。

  

<强>活化
  您需要将活动主题切换到另一个,然后切换回来激活它。

参考文献: