作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个闪购网站,并且我已经在主页和商店页面上根据日期范围显示产品。但我也想根据其他地方的日期范围显示产品,因此使用简码。
这是我的代码:
function testt($meta_query)
{
$today = current_time('Ymd');
$args = apply_filters('woocommerce_shortcode_products_query', array (
'post_type' => 'product',
'numberposts' => -1,
'meta_query' => array(
'relation' => 'AND',
'start_clause' => array(
'key'=>'flash_sale_start',
'value' => $today,
'compare'=> '<=',
'type' => 'DATE'
),
'end_clause' => array(
'key' => 'flash_sale_end',
'value' => $today,
'compare' => '>=',
'type' => 'DATE'
),
)));
return $args;
}
add_shortcode( 'test', 'testt' );
但是它没有显示任何东西,甚至我页面的其余内容都消失了。
我做错了什么?
感谢任何帮助。
最佳答案
这是正常的,它不会返回任何内容,因为您需要首先在 WP_Query
中传递此 $args
并在循环中调用产品模板方式:
if( ! function_exists('product_test') ) {
// Add Shortcode
function product_test( $atts ) {
global $woocommerce_loop;
// Attributes
$atts = shortcode_atts(
array(
'columns' => '4',
'limit' => '20',
'start' => current_time('Ymd'),
'end' => current_time('Ymd'),
),
$atts, 'products_test'
);
$woocommerce_loop['columns'] = $atts['columns'];
// The WP_Query
$products = new WP_Query( array (
'post_type' => 'product',
'post_status' => 'publish',
'posts_per_page' => $atts['limit'],
'meta_query' => array(
'relation' => 'AND',
'start_clause' => array(
'key' =>'flash_sale_start',
'value' => $atts['today'],
'compare' => '<=',
'type' => 'DATE'
),
'end_clause' => array(
'key' => 'flash_sale_end',
'value' => $atts['today'],
'compare' => '>=',
'type' => 'DATE'
),
)
));
ob_start();
if ( $products->have_posts() ) { ?>
<?php woocommerce_product_loop_start(); ?>
<?php while ( $products->have_posts() ) : $products->the_post(); ?>
<?php wc_get_template_part( 'content', 'product' ); ?>
<?php endwhile; // end of the loop. ?>
<?php woocommerce_product_loop_end(); ?>
<?php
} else {
do_action( "woocommerce_shortcode_products_loop_no_results", $atts );
echo "<p>There is no results.</p>";
}
woocommerce_reset_loop();
wp_reset_postdata();
return '<div class="woocommerce columns-' . $atts['columns'] . '">' . ob_get_clean() . '</div>';
}
add_shortcode( 'products_test', 'product_test' );
}
代码进入事件子主题(或事件主题)的 function.php 文件。
用法:
您可以将 4 个可用的可选参数添加到此短代码中:
columns
(列数)- 默认为 4limit
(产品数量 | -1 将显示全部)- 默认为 20start
(开始日期 | 格式为“YMD”)- 默认为今天end
(结束日期 | 格式为“YMD”)- 默认为今天您可以在函数中设置更多...您也可以更改默认值。
示例 1(带默认值的简单示例):
[products_test]
示例2(一些自定义值)
[products_test columns='3' limit='15']
已测试并有效
关于php - 使用自定义元查询显示带有简码的 WooCommerce 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351613/
我正在使用 Bootstrap 日期时间选择器。我想要 datetimepicker 格式作为短月份名称,例如。 一月。我的代码在下面,它现在显示完整的月份名称为 January。如何让它成为 Jan
注意:这篇博客已经和当前的分页插件完全不一样了,所以建议大家通过上面项目地址查看最新的源码和文档来了解。 以前为Mybatis分页查询发愁过,而且在网上搜过很多相关的文章,最后一个都没采用。在分页
我是一名优秀的程序员,十分优秀!