L'arborescence de la liste des cases à cocher de catégorie change lors de la modification d'un message

4

Je configure les catégories de mon site Web et je les ai comme suit:

C'estça,j'aidesenfantsdumêmenommaisilsnesontpasinterchangeables.Sicelavousposeproblème,vouspensezsimplementqu’ilsportentdesnomsdifférents.

Ensuite,jepasseàunmessageetjesouhaiteyajouterdescatégories.Désormais,l’arborescenceacomplètementdisparuetl’ordredescatégoriesestcomplètementfoiré:

Pourquoi cela se passe-t-il? Ce n'est pas toujours comme ça, parfois l'arbre se présente bien mais ce comportement n'est pas cohérent. J'ai vu cela se produire d'innombrables fois sur d'autres blogs et jusqu'à présent, j'ai simplement ignoré ce comportement, car je pouvais (ou l'administrateur Web) identifier quelle catégorie est enfant de quel parent, mais ce n'est pas le cas, car certains noms se répètent. En tout cas, même si mes catégories peuvent ne pas être la meilleure pratique, peut-être que pour l'utilisateur final n'est pas transparent qu'une catégorie est enfant d'une autre si l'arbre est cassé comme ça, non?

EDIT: Cela ne se produit que lors de l'édition d'un article, lorsque j'en ajoute un nouveau, tout va bien et tout va bien:

    
posée Elaine Marley 21.12.2012 - 11:14

2 réponses

4

La liste de catégories utilise la fonction wp_terms_checklist () dans wp-admin/includes/template.ph p sur la ligne 90. Le paramètre "checked_ontop" est défini sur true . Donc, les cases à cocher seront sur le dessus.

Cela ne se produit que lors de la modification d'un article, lorsque j'en ajoute un nouveau, tout va bien et dandy

C’est parce que lorsque vous créez une publication, aucune des catégories n’est cochée et la liste sera intacte, mais lorsque vous enregistrez une, elle apparaît en haut de la page car "le paramètre vérifié" est défini sur true ".

Vous pouvez éviter cela en remplaçant le paramètre checked_ontop par false en l'ajoutant à votre fonction theme.php.

function wpse_prevent_on_top_cat() {
    // Run only in admin
    if( is_admin() && add_action('wp_terms_checklist_args', 'wpse_prevent_on_top_cat') ) {
        // Change checked_ontop to false
        $args['checked_ontop'] = false;
        // Return the new parameter
        return $args;
    }
}

Ou simplement installer mon plugin simple sur ce code: enlace

Le résultat:

    
réponse donnée Pontus Abrahamsson 26.12.2012 - 16:43
2

Je vois que vous avez sélectionné toutes les catégories de parents pour votre message. Lorsque vous ajoutez un nouveau poste, la commande est bien maintenue. Mais lorsque vous éditez un tel message, les catégories associées à la pile de messages en haut, tandis que les autres catégories apparaissent en bas. Si vous avez sélectionné les catégories parent, leur association avec les catégories enfant est perdue et c'est pourquoi elles n'apparaissent pas correctement. Ce comportement est inhérent à la conception.

    
réponse donnée navjotjsingh 26.12.2012 - 11:08

Lire d'autres questions sur les étiquettes