我得到了一个自定义帖子类型,并将自定义帖子(杂志的问题)链接到与ACF有关系的主要帖子(文章)。我注册了一个自定义管理列,以显示链接到文章列表中文章的问题。我回显自定义(发布)帖子中使用的两个ACF的值-发布编号和发布年份,以指定自定义帖子,如“2016-04”:
function add_linked_issue_posts_admin_column($column) {
$column[\'linked_issue_post\'] = \'Issue number\';
return $column;
}
add_filter(\'manage_posts_columns\', \'add_linked_issue_posts_admin_column\');
function add_linked_issue_post_admin_column_show_value($column_name, $post_ID) {
if ($column_name == \'linked_issue_post\') {
$posts = get_field( \'article_issue_n\', $post_ID );
if( $posts ):
foreach( $posts as $post):
setup_postdata($post);
$issue_n = get_field(\'issue_number_cf\', $post->ID);
$issue_y = get_field(\'issue_year\', $post->ID);
echo \'\'.$issue_y.\'-\'.$issue_n.\'\';
endforeach;
wp_reset_postdata();
endif;
}
}
add_action(\'manage_posts_custom_column\', \'add_linked_issue_post_admin_column_show_value\', 10, 2);
function linked_issue_post_columng_make_sortable($columns)
{
$columns[\'linked_issue_post\'] = \'linked_issue_post\';
return $columns;
}
add_filter("manage_edit-post_sortable_columns", "linked_issue_post_columng_make_sortable" );
而且效果很好。但该列未按回显值排序。我的意思是,我希望该列按字母/数字顺序按ASC或DESC排序,以便2016-04期的发行号在2016-03期之后。尝试了许多筛选器,但仍然没有结果。非常感谢!
最合适的回答,由SO网友:Alexander Dolgopolskiy 整理而成
啊,补救办法很简单:
function issue_column_orderby( $vars ) {
if ( isset( $vars[\'orderby\'] ) && \'linked_issue_post\' == $vars[\'orderby\'] ) {
$vars = array_merge( $vars, array(
\'meta_key\' => \'article_issue_n\',
\'orderby\' => \'meta_value\'
) );
}
return $vars;
}
add_filter( \'request\', \'issue_column_orderby\' );
我以前可能遗漏了什么。。。