Diacritics sorting support
Document Library Pro includes support for diacritics-neutral sorting, which ensures that accented characters (like á, é, ñ, ü) are sorted alongside their non-accented counterparts (a, e, n, u). This is particularly useful for multilingual document libraries.
Enabling diacritics sorting
To enable diacritics sorting in your document library:
- Navigate to Documents → Settings → Advanced in your WordPress admin
- Make sure "Lazy load" is disabled
- Look for the "Diacritics sorting" option (located just below the "Accent-insensitive search" checkbox)
- Check the box to enable this feature
- Save your settings
Once enabled, the title column will automatically support diacritics-neutral sorting.
How it works
When diacritics sorting is enabled, Document Library Pro modifies the tables column configuration to use the diacritics-neutralise
sorting type instead of the default html
type. This ensures that:
- "André" comes before "Antonio"
- "Müller" is sorted with other "M" names
- "José" appears in the correct alphabetical position
Adding diacritics support to other columns
By default, only the title column receives automatic diacritics sorting support. If you need this functionality for other columns (like categories, or tags), you can extend it using the document_library_pro_data_config
filter hook.
Basic implementation
Add the following code to your theme's functions.php
file:
/**
* Add diacritics sorting support to additional columns
*/
function dlp_custom_add_diacritics_sorting_to_columns( $config, $args ) {
// Only apply if diacritics sorting is enabled in settings
$settings = Barn2\Plugin\Document_Library_Pro\Util\Options::get_settings();
if ( ! isset( $settings['diacritics_sort'] ) || $settings['diacritics_sort'] !== '1' ) {
return $config;
}
// Check if columnDefs exists
if ( ! isset( $config['columnDefs'] ) ) {
return $config;
}
// Define which columns should use diacritics sorting
$diacritics_columns = [
'col-doc_categories', // Document categories
'col-doc_tags', // Document tags
'col-doc_author', // Document author
// Add more column classes as needed
];
// Apply diacritics sorting to specified columns
$config['columnDefs'] = array_map(
function ( $column_def ) use ( $diacritics_columns ) {
if ( isset( $column_def['className'] ) && in_array( $column_def['className'], $diacritics_columns ) ) {
$column_def['type'] = 'diacritics-neutralise';
}
return $column_def;
},
$config['columnDefs']
);
return $config;
}
add_filter( 'document_library_pro_data_config', 'dlp_custom_add_diacritics_sorting_to_columns', 10, 2 );
Column class names
Here are the common column class names you can target:
Column | Class Name |
---|---|
Title | col-title |
Categories | col-doc_categories |
Tags | col-doc_tags |
Author | col-doc_author |
Simple example: single column
If you only need to add diacritics support to one specific column:
/**
* Add diacritics sorting to document categories only
*/
function dlp_custom_add_diacritics_to_categories( $config, $args ) {
$settings = Barn2\Plugin\Document_Library_Pro\Util\Options::get_settings();
// Check if diacritics sorting is enabled
if ( isset( $settings['diacritics_sort'] ) && $settings['diacritics_sort'] === '1' && isset( $config['columnDefs'] ) ) {
$config['columnDefs'] = array_map(
function ( $column_def ) {
if ( isset( $column_def['className'] ) && $column_def['className'] === 'col-doc_categories' ) {
$column_def['type'] = 'diacritics-neutralise';
}
return $column_def;
},
$config['columnDefs']
);
}
return $config;
}
add_filter( 'document_library_pro_data_config', 'dlp_custom_add_diacritics_to_categories', 10, 2 );
Important notes
- Enable the Feature First: The diacritics sorting option must be enabled in the plugin settings for the code to work and is only compatible with non lazy loaded tables.
- Column Class Names: Make sure you're using the correct column class names. You can inspect your table's HTML to find the exact class names if needed or use debug functions to debug the
columnDefs
array.