我有这段代码适用于插件 1 > facetwp 过滤器
/** custom index to display a dropdown facet as a range
** change 'CHANGE_ME' to the name of your facet
** facet settings should be a dropdown type and the datasourc
** of the value you want to show as a range **/
add_filter( 'facetwp_index_row', function( $params, $class ) {
if ( 'baths' == $params['facet_name'] ) {
$range = $params['facet_value'];
switch ( true ) {
case ( $range <= 1 ):
$params['facet_value'] = '1';
$params['facet_display_value'] = '1';
break;
case ( $range <= 2 ):
$params['facet_value'] = '2';
$params['facet_display_value'] = '2';
break;
case ( $range <= 3 ):
$params['facet_value'] = '3';
$params['facet_display_value'] = '3';
break;
case ( $range <= 4 ):
$params['facet_value'] = '4';
$params['facet_display_value'] = '4';
break;
case ( $range >= 5 ):
$params['facet_value'] = '999';
$params['facet_display_value'] = '5+';
break;
default: // no value
$params['facet_value'] = ''; // skip indexing
}
}
return $params;
}, 10, 2 );
然后我切换到plugin 2 > gridbuilder原理是一样的
(请仔细阅读我们现在在插件编号 2 我正在尝试根据他们的文档使用 gridbuilder 规则重做相同的代码)
这里是他们的文档,我假设等效的过滤器 /indexer/row
function prefix_row_data( $row, $object_id, $facet ) {
// We only process date facet type.
if ( 'date' !== $facet['type'] ) {
return $row;
}
// We change the date format to match date facet format (Y-m-d or Y-m-d h:i:s).
$row['facet_value'] = date( 'Y-m-d', strtotime( $row['facet_value'] ) );
// Return row to insert in the index table.
return $row;
}
add_filter( 'wp_grid_builder/indexer/row', 'prefix_row_data', 10, 3 );
毫无疑问,我向您展示了我尝试做的事情...我知道它不会那样工作...但是您明白了。
根据他们的文档,他们对我的代码的编写逻辑是什么?php专家不客气
function prefix_row_data( $row, $object_id, $facet ) {
// We only process date facet type.
if ( 'baths' !== $facet['type'] ) {
return $row;
}
$range = $params['facet_value'];
switch ( true ) {
case ( $range <= 1 ):
$params['facet_value'] = '1';
$params['facet_display_value'] = '1';
break;
case ( $range <= 2 ):
$params['facet_value'] = '2';
$params['facet_display_value'] = '2';
break;
case ( $range <= 3 ):
$params['facet_value'] = '3';
$params['facet_display_value'] = '3';
break;
case ( $range <= 4 ):
$params['facet_value'] = '4';
$params['facet_display_value'] = '4';
break;
case ( $range >= 5 ):
$params['facet_value'] = '999';
$params['facet_display_value'] = '5+';
break;
default: // no value
$params['facet_value'] = ''; // skip indexing
}
}
return $params;
}
add_filter( 'wp_grid_builder/indexer/row', 'prefix_row_data', 10, 3 );