Cum se ordonează articolele unui tip de postare personalizat după dată DESC în panoul de administrare?

17 ian. 2013, 11:00:33
Vizualizări: 32.2K
Voturi: 9

Am creat un nou tip de postare numit "Video".

Când creez o postare pentru acest tip de conținut, postările sunt ordonate după title ASC.

Este posibil să ordonez postările după dată în ordine descrescătoare (DESC)?

register_post_type('Videos', array(
    'labels' => array(
        'name' => _x('Videos', 'nume general tip postare'),
        'singular_name' => _x('Video', 'nume singular tip postare'),
        'add_new' => _x('Adaugă', 'Video'),
        'add_new_item' => __('Adaugă un video'),
        'edit_item' => __('Editează video'),
        'new_item' => __('Video nou'),
        'view_item' => __('Vezi link-ul video'),
        //'search_items' => __('Video'),
        'menu_name' => 'Video'
    ),
    'public' => true,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'rewrite' => array('slug' => 'video'),
    'query_var' => true,
    'supports' => array(
        'title',
        'editor' => false,
        'excerpt' => false,
        'trackbacks' => false,
        'custom-fields',
        'comments' => false,
        'revisions' => false,
        'thumbnail' => false,
        'author' => false,
        'page-attributes' => false,
    ),
    'taxonomies' => array('post_tag')
   )
 );
2
Comentarii

Te rog să adaugi codul unde afișezi postările, nu adaugi parametrul order_by acolo unde înregistrezi post_type-ul, ci doar când interoghezi postările

Pontus Abrahamsson Pontus Abrahamsson
17 ian. 2013 16:25:57

Oh, scuze, aș vrea să adaug order_by în WordPress Admin

Steffi Steffi
17 ian. 2013 18:07:57
Toate răspunsurile la întrebare 4
3
19

În regulă, poți pur și simplu să te conectezi la filtrul pre_get_posts și să verifici is_admin. Pune acest cod în tema sau pluginul tău:

function wpse_81939_post_types_admin_order( $wp_query ) {
  if (is_admin()) {

    // Obține tipul de post din interogare
    $post_type = $wp_query->query['post_type'];

    if ( $post_type == 'Videos') {

      $wp_query->set('orderby', 'date');

      $wp_query->set('order', 'DESC');
    }
  }
}
add_filter('pre_get_posts', 'wpse_81939_post_types_admin_order');

Aș schimba și post_type "Videos" la literă mică, gen "video".

17 ian. 2013 19:04:14
Comentarii

Bine, mulțumesc Pontus! Voi încerca asta. Dar de ce nu este setat implicit? Pentru "Postări" este deja setat prin "orderby DESC"

Steffi Steffi
17 ian. 2013 23:40:26

A funcționat pentru tine?

Pontus Abrahamsson Pontus Abrahamsson
18 ian. 2013 10:15:42

nu este implicit, pentru că este setat la "Nume" în ordine alfabetică implicit (sau cred că după slug)

Nabeel Khan Nabeel Khan
4 mai 2016 01:51:22
0
10

Exemplul de mai sus dezactivează funcția de ordonare prin clic pe coloane.

Sortabil pentru mai multe tipuri de postări personalizate:

function wpse_819391_post_types_admin_order( $wp_query ) {
  if ( is_admin() && !isset( $_GET['orderby'] ) ) {     
    // Obține tipul de postare din interogare
    $post_type = $wp_query->query['post_type'];
    if ( in_array( $post_type, array('videos','news','text') ) ) {
      $wp_query->set('orderby', 'date');
      $wp_query->set('order', 'DESC');
    }
  }
}
add_filter('pre_get_posts', 'wpse_819391_post_types_admin_order');
10 dec. 2013 01:40:23
0

Am folosit o abordare puțin diferită:

    add_action('pre_get_posts', 'filter_posts_list'); 

    function filter_posts_list($query)  {
        //$pagenow stochează numele paginii curente vizualizate
         global $pagenow, $typenow;  
        if(current_user_can('edit_posts') && ('edit.php' == $pagenow))  { 
            //metoda set() a obiectului global $query pentru setare
            $query->set('orderby', 'date');
            $query->set('order', 'desc');
        }
    }
28 nov. 2019 13:39:20
0

Schimbă argumentul hierarchical la false sau șterge acea linie pentru a te baza pe valoarea implicită de false.

'hierarchical' => false,

https://developer.wordpress.org/reference/functions/register_post_type/#parameters

15 iun. 2024 18:38:56