- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 WooCommerce 后端的产品列表中,我们可以通过点击星号使产品成为特色。
但是,如果您有很多产品并且之后想查看哪些产品有特色,我们必须搜索所有产品。
所以我想把这个栏目做成可排序的,以便在排序时所有特色产品都显示在前面或后面
使用我目前的代码,可以对列进行排序,但在排序过程中结果变为空,导致 0 个结果
// 'featured' column sortable on the 'product' page
function sc_sortable_column( $columns ) {
$columns['featured'] = 'featured';
return $columns;
}
add_filter( 'manage_edit-product_sortable_columns', 'sc_sortable_column' );
// Orderby 'featured' (product)
function filter_pre_get_posts( $query ) {
if( ! is_admin() )
return;
$orderby = $query->get('orderby');
// featured, product
if( $orderby == 'featured') {
$query->set( 'meta_key', '_featured' );
$query->set( 'orderby', 'meta_value_num' );
}
}
add_action( 'pre_get_posts', 'filter_pre_get_posts' );
最佳答案
自 WooCommerce 3 以来,特色产品现在由 product_visibility
自定义分类法处理 featured
。请参阅:Get WooCommerce featured products in a WP_Query
通常分类法不允许对帖子进行排序,如 WordPress Development StackExchange 线程中所述:Using wp_query is it possible to orderby taxonomy? .
但例如使用过滤器 posts_clauses
可以按特色对产品进行排序。
因此要使用的代码将是:
// Make Product "Featured" column sortable on Admin products list
add_filter( 'manage_edit-product_sortable_columns', 'products_featured_sortable_column' );
function products_featured_sortable_column( $columns ) {
$columns['featured'] = 'featured';
return $columns;
}
add_filter('posts_clauses', 'orderby_product_visibility', 10, 2 );
function orderby_product_visibility( $clauses, $wp_query ) {
global $wpdb;
$taxonomy = 'product_visibility';
$term = 'featured';
if ( isset( $wp_query->query['orderby'] ) && $term == $wp_query->query['orderby'] ) {
$clauses['join'] .=<<<SQL
LEFT OUTER JOIN {$wpdb->term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id
LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id)
LEFT OUTER JOIN {$wpdb->terms} USING (term_id)
SQL;
$clauses['where'] .= " AND (taxonomy = '{$taxonomy}' OR taxonomy IS NULL)";
$clauses['groupby'] = "object_id";
$clauses['orderby'] = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) ";
$clauses['orderby'] .= ( 'ASC' == strtoupper( $wp_query->get('order') ) ) ? 'ASC' : 'DESC';
}
return $clauses;
}
代码进入事件子主题(或事件主题)的 functions.php 文件。测试和工作。
关于php - 在 Woocommerce 管理产品列表中使特色列可排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63203760/
嗯,我的问题是,我想存储某种产品在他们自己的表中,并且从这些产品中我想选择一些到特色/强调产品表,它将存储每个表中所选行的 ID,以在网站的主页上显示这些特色产品。 从表中选择特色产品后,我想自己制定
您好,我正在与 bigcommerce 合作,我希望在每个类别页面上获得以下风格的分割 本质上是制作类别版本; %%Panel.HomeFeaturedProducts%% %%Panel.SideT
在这个网站上http://rwl.rwlwater.com/我有一个小问题...我添加了 overflow: hidden 到特色 slider div,如果启用了 javascript 或用户的互联
我用VB.NET和MySQL作为数据库创建了一个咖啡销售系统。 在该系统中,用户可以更新自己的信息,例如名字、姓氏、BOD 等。 但是,多个用户当前可能会同时编辑同一数据集,这是我需要防止的。 示例:
在这里http://jsfiddle.net/comparebest/yBcKk/6/我有一个 jQuery slider 和两个 Div - DIV ONE 和 DIV TWO。 有没有办法让我自动
我是一名优秀的程序员,十分优秀!