我正在建立一个小型摄影网站,并希望尽我所能保护图像。
(我知道,我知道 - 一旦他们重新开始拍摄,您就无法保护这些图像 因特网)
所以 - 为了做到这一点,我没有使用恼人的 disable-right-click-using-javascript 方法,而是使用base64加载带水印的缩略图图像来混淆文件路径。 / p>
代码我正在使用,如果有人感兴趣的话。随意提出改进/批评:
$image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'shop_catalog' ); ?>
<img src="data:image/gif;base64,<?php echo base64_encode(file_get_contents($image[0])); ?>">
这在content-single-product.php
上效果很好,但有谁知道在[best_selling_products]
和[recent_products]
短代码中加载图片的代码是什么?我在class-wc-shortcodes.php
,但查询似乎没有从这里加载图片...
那么为什么我不加载小缩略图? 好问题。由于我们计划通过网站销售照片,因此高分辨率图片已作为特色图片加载(通过打印API发送) - 以及任何人大脑可以查看缩略图网址并获取完整的高分辨率图像网址。
有关如何实现这一目标的任何建议,或者我最好不要删除短代码并构建自己的查询?
答案 0 :(得分:0)
好的 - 按要求,这是我的解决方案:
正如@helgatheviking所提到的,控制产品概述的模板是woocommerce/content-product.php
- 或者正如WooCommerce所说:
用于在循环中显示产品内容的模板
这里有许多钩子,包括woocommerce_template_loop_product_thumbnail
- 控制产品缩略图的钩子。所以我们需要做的就是:
1)使用以下方法取消缩略图:
remove_action ('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10);
2)使用我们自己的自定义缩略图或其他任何内容添加操作:
add_action('woocommerce_before_shop_loop_item_title', 'woocommerce_custom_template_loop_product_thumbnail', 10);
function woocommerce_custom_template_loop_product_thumbnail() {
$image = wp_get_attachment_image_src( get_post_thumbnail_id(), 'shop_catalog' );
echo '<img src="data:image/gif;base64,' .base64_encode(file_get_contents($image[0])) . '">';
}
感谢@helgatheviking指出我正确的方向。
有关WooCommerce Hooks的更多信息:https://docs.woocommerce.com/document/introduction-to-hooks-actions-and-filters/