这是我在这个伟大社区的第一篇文章。通常我找到所有的答案,我的小和大的问题,但这个我'很伤心地说是个谜对我说:(
我需要创建某种自动化功能,每天,每天一次选择3个随机产品,并将其标记为我的Woocommerce商店中的特色。第二天删除这3个并选择3个新的。
可悲的是,由于任务的共谋(对我来说),我没有显示/开始的代码。
我唯一能找到的是它必须在一些元信息中定义:
$args = array(
'post_type' => 'product',
'meta_key' => '_featured',
'meta_value' => 'yes',
)
真希望有人能帮助我:)。
答案 0 :(得分:0)
我认为最简单的解决方案是使用transients。
这是一个建议,但首先要注意几点。
如果没有人访问您的网站,瞬态并不总是在正确的时间清除,但如果这是一个问题,您可以设置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作业。在法典中查看如何schedule an event,但根据您的需要,瞬态可能就足够了。