web-dev-qa-db-fra.com

Attribut menu_order de mise à jour par lots alphabétiquement

Existe-t-il un moyen de mettre à jour par lots l'attribut d'ordre des pages de tous les enfants d'un parent spécifique, chaque fois qu'un nouvel enfant est ajouté?

Plus simplement, existe-t-il un moyen de parcourir les pages et de modifier l'attribut de tri pour qu'elles soient alphabétiques?

Par exemple....

  • Titre de la page A - ordre de tri 0
  • Titre de la page C - ordre de tri 0
  • Titre de la page B - ordre de tri 0

Deviendrait...

  • Titre de la page A - Ordre de tri 1
  • Titre de la page C - Ordre de tri 3
  • Titre de la page B - ordre de tri 2

Et serait finalement affiché dans l'administrateur en tant que ...

  • Titre de la page A - Ordre de tri 1
  • Titre de la page B - ordre de tri 2
  • Titre de la page C - Ordre de tri 3
1
user574246

Espérons que cela aide quelqu'un d'autre

N'oubliez pas de changer "your_post_parent_id_here" avec l'ID parent de votre choix.

    global $wpdb;
    $wpdb->query( 'SELECT @i:=-1' );
    $result = $wpdb->query(
        "
        UPDATE wp_posts SET menu_order = ( @i:= @i+1 ) WHERE post_parent = 'your_post_parent_id_here' ORDER BY post_title;
        "
    );
1
user574246