这是我在这个伟大社区的第一篇文章。通常我会找到大大小小的问题的所有答案,但我很遗憾地说这对我来说是一个谜:(
我需要创建某种自动化功能,每天一次随机选择 3 种产品并将它们标记为我的 WooCommerce 商店中的特色。第二天删除这 3 个并选择 3 个新的一次。
可悲的是,由于任务的共谋(对于我而言(,我没有代码可以显示/开始。
我唯一能找到的是它必须在一些元信息中定义:
$args = array(
'post_type' => 'product',
'meta_key' => '_featured',
'meta_value' => 'yes',
)
真的希望有人能帮助我:)
我认为最简单的解决方案是使用瞬态。
这里有一个建议,但首先有几个警告。
-
如果没有人访问您的网站,则瞬态并不总是在正确的时间清除,但如果这是一个问题,您可以设置 ping 服务以每天自动访问您的网站。
-
您无法精确控制瞬态何时清除...例如:每天下午3点。
-
此建议要求您重新设计主题显示这 3 种特色产品的方式。 因为我们实际上并不是在寻找
_featured
元。
functions.php
代码:
function so_35312355_get_daily_featured_products(){
// Get any existing copy of our transient data
if ( false === ( $daily_featured_products = get_transient( 'daily_featured_products' ) ) ) {
// It wasn't there, so regenerate the data and save the transient
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'orderby' => 'rand',
'posts_per_page' => '3',
);
$daily_featured_products = new WP_Query( $args );
set_transient( 'daily_featured_products', $daily_featured_products, 24 * HOUR_IN_SECONDS );
}
return $daily_featured_products;
}
或者,您可以运行 2 个查询。一个用于重置所有特色元键,另一个用于更新每个随机 3 个产品的元键。
更高级和更完整的方法是使用 cron 作业。看看法典,了解如何安排活动,但根据您的需要,瞬态可能就足够了。