我想按“标题”或自定义列(“层次结构”)在“页面”仪表板中按字母顺序排列页面。基本上,所有页面都分配了一个层次代码(1、1.1、1.1.01、1.1.02等)。当我单击“层次”排序按钮时,结果不正确。
有人能给我一个提示或给我指出讨论这个问题的资源吗?下面列出了我的代码。
// (Works.) Make custom columns \'prod-hierar\' and \'slug\' sortable
add_filter( \'manage_edit-page_sortable_columns\', \'wms_sort_cust_cols\', 10, 2 );
function wms_sort_cust_cols( $col ) {
// Make column \'hierarchy\' sortable ie add sorting icon
$col[ \'hierarchy\' ] = \'prod_hierar\';
return $col;
}
// (Does not work.) Order column \'hierarchy\' alphabetically via meta_key \'prod_hier\'.
add_filter( \'request\', \'wms_hierarchy_col_orderby\' );
function wms_hierarchy_col_orderby( $vars ) {
PC::debug(\'wms_hierarchy_col_orderby() hit\');
if ( isset( $vars[\'orderby\'] ) && \'prod_hier\' == $vars[\'orderby\'] ) {
$vars = array_merge( $vars, array(
\'meta_key\' => \'prod_hier\',
\'orderby\' => \'meta_value\'
//$query->set( \'meta_key\', \'prod_hier\' );
//$query->set( \'orderby\', \'meta_value\' );
) );
}
return $vars;
}
SO网友:user1660874
我刚刚意识到代码中有一个拼写错误。元标记应为“prod\\u hierar”,而不是“prod-hier”。这解决了问题。(我想实验太多了……)。
函数“wms\\u hierarchy\\u col\\u orderby()”因此变为:
function wms_hierarchy_col_orderby( $vars ) {
if ( isset( $vars[\'orderby\'] ) && \'prod_hierar\' == $vars[\'orderby\'] ) {
$vars = array_merge( $vars, array(
\'meta_key\' => \'prod_hierar\',
\'orderby\' => \'meta_value\'
) );
}
return $vars;
}