我在一家WordPress网站的管理部门工作。我有一个CPT,我在其中添加了一列,并希望按该列类型进行排序。根据我所读到的内容,我使用的是正确的函数,但在过滤‘Manage_EDIT-Leadline_Sortable_Columns’之后,管理用户界面没有任何变化。这是一个CPT,层次结构被设置为“True”。我读到过,这可能会影响它,但找不到解决办法。这一栏还显示了一个红色圆圈和旁边的‘0’,我不知道它是从哪里来的。最终目标是将站点上的显示页面设置为菜单顺序,并为客户提供按标题或姓氏排序的选项。谢谢!
add_filter( 'manage_leadership_posts_columns', 'smashing_filter_posts_columns' );
function smashing_filter_posts_columns( $columns ) {
$name = array();
$name['last_name'] = __( 'Last Name', 'smashing', true );
array_splice($columns, 2, 0, $name);
return $columns;
}
function smashing_leadership_column( $column, $post_id ) {
// Name column
if ( 'last_name' == $column ) {
$lastName = get_field('last_name', $post_id );
echo $lastName;
}
}
add_action( 'manage_leadership_posts_custom_column', 'smashing_leadership_column', 10, 2);
function smashing_leadership_sortable_columns( $columns ) {
$columns['last_name'] = 'last_name';
return $columns;
}
add_filter( 'manage_edit-leadership_sortable_columns', 'smashing_leadership_sortable_columns');
add_action( 'pre_get_posts', 'smashing_posts_orderby' );
function smashing_posts_orderby( $query ) {
if( ! is_admin() || ! $query->is_main_query() ) {
return;
}
if ( 'last_name' === $query->get( 'orderby') ) {
$query->set( 'orderby', 'meta_value' );
$query->set( 'meta_key', 'last_name' );
}
}
1条答案
按热度按时间xriantvc1#
我能够用下面的代码取代其他可排序的筛选器来实现这一点。