Cum să modifici ordinea articolelor în panoul de administrare?
Cum pot schimba ordinea articolelor în panoul de administrare, astfel încât să fie afișate în ordine alfabetică după titlu, în loc de cele mai recente mai întâi?

Dacă nu doriți să faceți clic mereu pe coloana "Titlu" pentru a sorta postările după titlu, puteți plasa acest cod în fișierul functions.php
al temei WordPress active sau într-un plugin. Acest cod va sorta automat postările pentru dvs., astfel încât nu va trebui să faceți clic pe coloana titlu de fiecare dată.
Puteți utiliza acest cod pentru a seta ordinea implicită de sortare pe tipurile de postări.
/* Sortează postările în wp_list_table după coloană în ordine crescătoare sau descrescătoare. */
function custom_post_order($query){
/*
Setează tipurile de postări.
_builtin => true returnează tipurile de postări implicite din WordPress.
_builtin => false returnează tipurile de postări personalizate înregistrate.
*/
$post_types = get_post_types(array('_builtin' => true), 'names');
/* Tipul de postare curent. */
$post_type = $query->get('post_type');
/* Verifică tipurile de postări. */
if(in_array($post_type, $post_types)){
/* Coloana Postării: de ex. titlu */
if($query->get('orderby') == ''){
$query->set('orderby', 'title');
}
/* Ordinea Postării: ASC / DESC */
if($query->get('order') == ''){
$query->set('order', 'ASC');
}
}
}
if(is_admin()){
add_action('pre_get_posts', 'custom_post_order');
}
Puteți utiliza unele dintre aceste condiții ca exemplu...
/* Afectează toate tipurile de postări din array. */
if(in_array($post_type, $post_types)){
}
/* Afectează doar un anumit tip de postare din array-ul de tipuri de postări. */
if(in_array($post_type, $post_types) && $post_type == 'numele_tipului_de_postare'){
}
/* Afectează toate tipurile de postări din array, cu excepția unui anumit tip de postare. */
if(in_array($post_type, $post_types) && $post_type != 'numele_tipului_de_postare'){
}
Dacă doriți să aplicați această sortare pe TOATE tipurile de postări, indiferent dacă sunt "built-in" sau nu...
Schimbați asta:
$post_types = get_post_types(array('_builtin' => true), 'names');
În asta:
$post_types = get_post_types('', 'names');

Este ok să folosești în interiorul funcției în loc să verifici înainte de acțiune if ( ! is_admin ) {
return;
}

Trebuie să adaugi un "return $query;" înainte de sfârșitul funcției, altfel acest lucru nu va funcționa în versiunile mai noi de WordPress.

function custom_field() {
add_meta_box(
'post_priority',
'Prioritatea Postării',
'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">Prioritatea Postării:</label>
<input type="number" id="post_priority" name="post_priority" value="<?php echo $priority; ?>" min="1">
<?php
}
// Salvează valoarea câmpului personalizat
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');
// pentru adăugarea coloanei în zona de administrare a postărilor (adding column in admin post area stack exchange)
add_filter('manage_posts_columns', 'add_priority_column');
function add_priority_column($columns) {
$columns['post_priority'] = 'Prioritate';
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 : '—');
}}
