wordpress - 使用高级自定义字段对分类管理表进行列排序
问题描述
我试图让我在 edit-tags.php 上的管理列可以按 ACF 字段值排序,但我遗漏了一些东西。我可以单击列标题对列进行排序,但它仅按标记名称对表进行排序,而不是列中的 ACF 字段值。如果有人可以提供帮助,我将不胜感激!
我已经设置了要添加的列:
/**
* Add columns to the post_tags admin table
*/
function add_post_tag_columns($columns){
$columns['featured'] = 'Featured';
$columns['order'] = 'Order';
$columns['group'] = 'Group';
// Remove description column from table
unset( $columns['description'] );
return $columns;
}
add_filter('manage_edit-post_tag_columns', 'add_post_tag_columns');
我已经为每列中的标签设置了值:
/**
* Set values for new post_tags admin table columns
*/
function add_post_tag_column_content( $content, $column_name, $term_id ){
$term= get_term($term_id, 'post_tag');
switch ( $column_name ) {
// display the value of ACF fields
case 'featured' :
$content = the_field( 'kw_featured_tag', $term );
break;
case 'order' :
$content = the_field( 'kw_tag_order', $term );
break;
case 'group' :
$content = the_field( 'kw_group_tags', $term );
break;
}
return $content;
}
add_filter('manage_post_tag_custom_column', 'add_post_tag_column_content', 10, 3);
我已经设置了列排序
/**
* Make columns on post_tags admin table sortable
*/
function set_custom_post_tag_sortable_columns( $sortable_columns ) {
$sortable_columns['featured'] = 'kw_featured_tag';
$sortable_columns['order'] = 'kw_tag_order';
$sortable_columns['group'] = 'kw_group_tags';
return $sortable_columns;
}
add_filter( 'manage_edit-post_tag_sortable_columns', 'set_custom_post_tag_sortable_columns' );
这就是[我认为]我遇到问题的地方:
/**
* Set up the orderby for the column sorting
*/
function post_tag_custom_orderby( $query ) {
if ( ! is_admin() )
return;
$orderby = $query->get( 'orderby');
if ( 'featured' == $orderby ) {
$query->set( 'meta_key', 'kw_feature_tag' );
$query->set( 'orderby', 'meta_value_num' );
}
elseif ( 'order' == $orderby ) {
$query->set( 'meta_key', 'kw_tag_order' );
$query->set( 'orderby', 'meta_value_num' );
}
elseif ( 'group' == $orderby ) {
$query->set( 'meta_key', 'kw_group_tags' );
$query->set( 'orderby', 'meta_value' );
}
}
add_action( 'pre_get_posts', 'post_tag_custom_orderby' );
如果有人可以帮助缩小我做错的范围,我会是一个非常高兴的 Wordpress 开发人员:P。提前致谢!
--
编辑:这是我的管理表的几个屏幕截图:
- 精选 (kw_featured_tag) 是真/假
- 订单(kw_tag_order)是一个数字字段
- Group (kw_group_tags) 是一个复选框数组(我将其更改为返回一个数组,现在我需要修复我的代码以获取要显示的数组中的项目列表,而不仅仅是“数组”)
解决方案
推荐阅读
- python - python中的扑克手评估:为什么naive比bit hash快?
- apache-spark - spark 1.6 任务永无止境
- file - 将文件显示为 docker windows 容器的日志
- elasticsearch - 使用 Kibana 从 Elasticsearch 数据库汇总中以 UTC 格式显示 @datetime
- r - Fixed.pars 表示 rmGarch
- excel - 错误 1004。查找循环继续运行。我正在移动文本,所以现在它继续在工作表中运行
- linux - Logrotate 在某些天后不删除文件
- python - 为什么我无法通过 response.css 获取所有图片链接?
- magento2 - 在作曲家为magento构建的应用程序安装403禁止错误之后
- visual-studio-2019 - 无法从命令行从 Windows docker 运行图像,但从 VisualStudio 2019 运行