Come Modificare l'Ordine dei Post nel Pannello Admin?
Come posso modificare l'ordine dei post nel pannello di amministrazione, in modo che vengano visualizzati in ordine alfabetico secondo il titolo, invece che dal più recente?

Se non desideri cliccare sempre sulla colonna "Titolo" per ordinare i tuoi articoli per titolo, puoi inserire questo codice nel file functions.php
del tuo tema WordPress attualmente attivo, oppure all'interno di un plugin. Questo ordinerà automaticamente sempre i tuoi articoli per te, così non dovrai cliccare ogni volta sulla colonna del titolo.
Puoi usare questo codice per impostare l'ordinamento predefinito sui tipi di articoli.
/* Ordina gli articoli in wp_list_table per colonna in ordine crescente o decrescente. */
function custom_post_order($query){
/*
Imposta i tipi di articoli.
_builtin => true restituisce i tipi di articoli predefiniti di WordPress.
_builtin => false restituisce i tipi di articoli personalizzati registrati.
*/
$post_types = get_post_types(array('_builtin' => true), 'names');
/* Il tipo di articolo corrente. */
$post_type = $query->get('post_type');
/* Controlla i tipi di articoli. */
if(in_array($post_type, $post_types)){
/* Colonna Articolo: es. title */
if($query->get('orderby') == ''){
$query->set('orderby', 'title');
}
/* Ordine Articolo: ASC / DESC */
if($query->get('order') == ''){
$query->set('order', 'ASC');
}
}
}
if(is_admin()){
add_action('pre_get_posts', 'custom_post_order');
}
Puoi usare alcune di queste condizioni di esempio...
/* Influisce su tutti i tipi di articoli nell'array. */
if(in_array($post_type, $post_types)){
}
/* Influisce solo su un tipo di articolo specifico nell'array dei tipi di articoli. */
if(in_array($post_type, $post_types) && $post_type == 'your_post_type_name'){
}
/* Influisce su tutti i tipi di articoli nell'array, tranne un tipo specifico. */
if(in_array($post_type, $post_types) && $post_type != 'your_post_type_name'){
}
Se desideri applicare questo ordinamento su TUTTI i tipi di articoli, indipendentemente dal fatto che siano "built-in" o meno...
Cambia questo:
$post_types = get_post_types(array('_builtin' => true), 'names');
In questo:
$post_types = get_post_types('', 'names');

Va bene usarlo all'interno della funzione invece di verificare prima dell'azione if ( ! is_admin ) {
return;
}

Devi aggiungere un "return $query;" prima della fine della funzione, altrimenti non funzionerà nelle versioni più recenti di WordPress.

function custom_field() {
add_meta_box(
'post_priority',
'Priorità Articolo',
'priority_meta_box',
'post',
'normal',
'low'
);
}
add_action('add_meta_boxes', 'custom_field');
function priority_meta_box($post) {
$priority = get_post_meta($post->ID, 'post_priority', true);
?>
<label for="post_priority">Priorità Articolo:</label>
<input type="number" id="post_priority" name="post_priority" value="<?php echo $priority; ?>" min="1">
<?php
}
// Salva il valore del campo personalizzato
function handle_priority_submit($post_id) {
if (array_key_exists('post_priority', $_POST)) {
$priority = $_POST['post_priority'];
if ($priority >=1){
update_post_meta($post_id,'post_priority',$priority);
}
}
}
add_action('save_post','handle_priority_submit');
function sort_posts_by_priority_in_admin($query) {
if ($query->get('post_type') === 'post') {
$query->set('meta_key', 'post_priority');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'ASC');
}
}
add_action('pre_get_posts', 'sort_posts_by_priority_in_admin');
// Per aggiungere una colonna nell'area di amministrazione degli articoli
add_filter('manage_posts_columns', 'add_priority_column');
function add_priority_column($columns) {
$columns['post_priority'] = 'Priorità';
return $columns;
}
add_action('manage_posts_custom_column', 'priority_column_value', 10, 2);
function priority_column_value($column, $post_id) {
if ($column == 'post_priority') {
$priority = get_post_meta($post_id, 'post_priority', true);
echo esc_html($priority ? $priority : '—');
}}
