//产品描述有超链接,去掉
function remove_product_hyperlinks($content) {
if (is_product()) { // 确保只在产品页面上应用
$content = preg_replace('/<a href=".*?">(.*?)<\/a>/', '$1', $content);
}
return $content;
}
add_filter('the_content', 'remove_product_hyperlinks');
// 设置免运费后,达到免送标准,其他运费不显示
function js_hide_all_shipping_when_free_is_available( $shipping_rates ) {
foreach ( $shipping_rates as $key => $rate )
{ // Check if current rate is 'free_shipping'
if ( $rate->get_method_id() == 'free_shipping' )
{ $shipping_rates = array( $key => $rate ); }
}
return $shipping_rates;
}
add_filter( 'woocommerce_package_rates', 'js_hide_all_shipping_when_free_is_available' );
//给产品详情页面的图片点击放大是个模态窗
function theme_enqueue_scripts_and_styles() {
wp_enqueue_style('custom-style', get_stylesheet_directory_uri() . '/css/custom-style.css');
wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom-script.js', array('jquery'), null, true);
$inline_script = "
jQuery(document).ready(function($) {
$('body').append('<div id=\"myModal\" class=\"modal\"><span class=\"close\">&times;</span><img class=\"modal-content\" id=\"img01\"></div>'); // CSS for the modal
var modal_css = '<style>\
.modal {display: none; position: fixed; z-index: 1000; padding-top: 100px; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgb(0,0,0); background-color: rgba(0,0,0,0.9);}\
.modal-content {margin: auto; display: block; max-width: 40%;}\
.close {position: absolute; top: 15px; right: 35px; color: white; font-size: 40px; font-weight: bold; cursor: pointer;}\
</style>';
$('head').append(modal_css); $('.woocommerce-product-gallery__image a').click(function(event) {
event.preventDefault();
var imgSrc = $(this).find('img').attr('src');
$('#img01').attr('src', imgSrc);
$('#myModal').css('display', 'block');
});
$('.close').on('click', function() {
$('#myModal').css('display', 'none');
});
});
"; wp_add_inline_script('custom-script', $inline_script);
} add_action('wp_enqueue_scripts', 'theme_enqueue_scripts_and_styles');
//在shop页面有重复的产品展示,去重
add_filter( 'posts_groupby', 'custom_posts_groupby', 10, 2 );
function custom_posts_groupby( $groupby, $query ) {
global $wpdb; // 只在前端的WooCommerce商品页面上应用
if ( ! is_admin() && $query->is_main_query() && ( is_shop() || is_product_category() || is_product_tag() ) ) {
// 添加我们自己的groupby逻辑,基于商品标题
$groupby = "{$wpdb->posts}.post_title";
} return $groupby;
} add_action( 'woocommerce_product_query', 'custom_product_query' );
function custom_product_query( $q ) {
$q->set( 'posts_per_page', 12 ); // 设置每页显示的产品数量,根据需要更改
$q->set( 'orderby', 'title' ); // 基于产品标题排序
$q->set( 'order', 'ASC' ); // 升序或降序
}

//去重1.20版本
add_action('woocommerce_product_query', 'filter_and_randomize_products');
function filter_and_randomize_products($query) {
if (is_shop() || is_product_category() || is_product_tag()) {
global $wpdb;

// 获取所有唯一的产品标题
$product_titles = $wpdb->get_col("
SELECT DISTINCT post_title
FROM {$wpdb->posts}
WHERE post_type = 'product'
AND post_status = 'publish'
");

// 获取每个标题对应的最小ID
$product_ids = [];
foreach ($product_titles as $title) {
$product_id = $wpdb->get_var($wpdb->prepare("
SELECT MIN(ID)
FROM {$wpdb->posts}
WHERE post_title = %s
AND post_type = 'product'
AND post_status = 'publish'
", $title));
$product_ids[] = $product_id;
}

// 打乱产品ID顺序
shuffle($product_ids);

// 修改查询参数
$query->set('post__in', $product_ids);
$query->set('orderby', 'post__in');
}
}



采集数据产品描述有超链接///设置免运费后,达到免送标准,其他运费不显示///给产品详情页面的图片点击放大是个模态窗///在shop页面有重复的产品展示,去重的更多相关文章

  1. 找出此产品描述中包含N个关键字的长度最短的子串

    阿里巴巴笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号:再给定N个英文关键词,请说明思路并变成实现方法. String extractSummary(Stri ...

  2. 让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边 点击链接后不跳转可以设置成

    让超链接点击后不跳转,可以用href = "#",但是这个#就会锚点到页面最上边     点击链接后不跳转可以设置成     1.<a href="javascri ...

  3. 服务追踪数据使用 RabbitMQ 进行采集 + 数据存储使用 Elasticsearch + 数据展示使用 Kibana

    服务追踪数据使用 RabbitMQ 进行采集 + 数据存储使用 Elasticsearch + 数据展示使用 Kibana https://www.cnblogs.com/xishuai/p/elk- ...

  4. 《ServerSuperIO Designer IDE使用教程》- 7.增加机器学习算法,通讯采集数据与算法相结合。发布:4.2.5 版本

    v4.2.5更新内容:1.修复服务实例设置ClearSocketSession参数时,可能出现资源无法释放而造成异常的情况.2.修复关闭宿主程序后进程仍然无法退出的问题.2.增加机器学习框架.3.优化 ...

  5. Arduino系列之DHT11模块采集数据(一)

    下面我将介绍DHT11模块的相关用法 DHT11数字传感器概述:是一款含有已校准数字信号输出的温湿度复合传感器 .它应用专用的数字模块采集技术和温湿度传感技术 ,确保产品具有极 高的可靠性与卓越的长期 ...

  6. {03--CSS布局设置} 盒模型 二 padding bode margin 标准文档流 块级元素和行内元素 浮动 margin的用法 文本属性和字体属性 超链接导航栏 background 定位 z-index

    03--CSS布局设置 本节目录 一 盒模型 二 padding(内边距) 三 boder(边框) 四 简单认识一下margin(外边距) 五 标准文档流 六 块级元素和行内元素 七 浮动 八 mar ...

  7. 分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据

    前文我们了解了zabbix的被动.主动以及web监控相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14024212.html:今天我们来了解下zabb ...

  8. php中CURL实现模拟登录并采集数据

    在php中采集我们用的是简单的采集方式(例如file_get_contents)就无法做到了,但是如果想模拟登录用户并采集利用它就没办法了,我们可利用CURL函数来实现模拟登录并采集数据 这里要说一些 ...

  9. SqlServer创建数据表描述及列描述信息

    SqlServer创建数据表描述及列描述信息 Intro Q: 为什么要创建描述信息? A: 鼠标悬停在对应表和列上时,会出现描述信息,可以提高工作的效率,借助工具我们根据数据表可以生成Model,可 ...

  10. 利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Docker ...

随机推荐

  1. iOS开发基础135-Core Data

    Objective-C (OC) 中使用 Core Data 是iOS应用开发中管理模型层对象的一种有效工具.Core Data 使用 ORM (对象关系映射) 技术来抽象化和管理数据.这不仅可以节省 ...

  2. .NET 中高效 Excel 解决方案 MiniExcel

    前言 MiniExcel 是一个用于 .NET 平台的轻量级.高性能的库,专注于提供简单易用的 API 来处理 Excel 文件.以下是 MiniExcel 的特点总结: 轻量级与高效:MiniExc ...

  3. app专项测试:app弱网测试(测试工具)

    app专项测试:app弱网测试(测试工具) 除了常用的 fiddler,charles 可以模拟弱网,还有硬件工具弱网仪 HoloWAN也可以模拟弱网 使用弱网仪有以下优点:1.即插即用,无需调试和复 ...

  4. ubuntu23.04/22.04下安装docker engine

    官方网址: https://docs.docker.com/engine/install/ubuntu/ 2023年12月1日更新 -- Ubuntu 23.04 # Add Docker's off ...

  5. 【转载】 HTTP中的响应协议及302、304的含义

    原文地址: https://www.cnblogs.com/chenyablog/p/9197305.html ============================== 响应协议 HTTP/1.1 ...

  6. PowerBI_一分钟学会计算门店开业前3天销售金额_计算列及度量值方法

    在某些特殊场景,我们往往需要去计算一些特定的组别的聚合数据 今天,就以计算门店开业前3天的销售情况,来学习一下,利用计算列和DAX度量值,两种快捷计算此类问题的方案. 一:XMIND 二:示例数据 2 ...

  7. 内存交换空间--Swap Space

    转载请注明出处: 一.概述 内存交换空间(Swap Space)是计算机内存的一种补充,位于硬盘驱动器上.当物理内存(RAM)不足时,系统会将不活跃的页面(或称为内存页)移到交换空间中,以释放物理内存 ...

  8. 随时随地与 LLMs 聊天的开源项目「GitHub 热点速览」

    众所周知,本地运行 LLMs 需要下载模型(体积大),并且还比较吃硬件配置.近日 GitHub 推出了 GitHub Models 服务,让开发者可以在 GitHub 上免费测试 Llama.Phi ...

  9. 一文带你理解URI 和 URL 有什么区别?

    当我们打开浏览器,要访问一个网站或者一个ftp服务器的时候,一定要输入一串字符串, 比如: https://blog.csdn.net/ 或者: ftp://192.168.0.111/ 这样我们就可 ...

  10. 零基础学习人工智能—Python—Pytorch学习(七)

    前言 本文主要讲神经网络的下半部分. 其实就是结合之前学习的全部内容,进行一次神经网络的训练. 神经网络 下面是使用MNIST数据集进行的手写数字识别的神经网络训练和使用. MNIST 数据集,是一个 ...