web-dev-qa-db-fra.com

Comportement étrange lors de l'ajout de termes/term_taxonomies par programme

Cela ressemble certainement à un bug pour moi. Je réunis le code suivant pour vous permettre de le tester sur une nouvelle installation. Fondamentalement, le code ajoutera deux sous-catégories sous "non catégorisé" pour obtenir l'effet suivant.

uncategorized
   sub-uncategorized
       sub-sub-uncategorized

Aucun problème pour les ajouter aux wp_terms et wp_term_taxonomies. Les deux identifiants parents sont correctement ajoutés.

Le problème est dans l’administration de wp. Vous ne voyez que les non-catégorisés et les sous-non-catégorisés. Le dernier (sous-sous) manque à l'action!

Mais si vous allez dans la liste déroulante parent sur la même page "Ajouter des catégories", vous verrez que le sous-uncat "et le" sous-sous-chat "y apparaissent, correctement mis en retrait - apparaissant exactement dans le texte correct suivant. hiérarchie

uncategorized
   sub-uncategorized
       sub-sub-uncategorized

Pour que le sous-sous-chat manquant apparaisse dans la vue principale, vous devez effectuer l’une des étapes suivantes.

soit vous recyclez le wp en vous arrêtant et en commençant.

ou ajoutez simplement un chat factice puis cliquez sur le lien "catégories" pour répertorier tous les chats. alors wp se souvient d’afficher correctement les sous-marins.

Quelqu'un a une idée pourquoi cela se produit?

J'apprécierais tous les remèdes programmatiques afin que je ne sois pas obligé de passer par les étapes ridicules juste pour que les chats soient visibles.

Le code est ci-dessous. Ajustez simplement le chemin wp-load.php en conséquence avant de pouvoir le tester sur une nouvelle installation, puis vérifiez ce que j'ai décrit ci-dessus par vous-même.

<?php

error_reporting (E_ALL);

//load the wp Shebang into this page
include (" put the full path here to the wp-load.php");


define('WP_USE_THEMES', false);


//add a sub category under the "uncategorized" that fresh install comes with
$Term = "Sub-UnCategorized";
$args = array('parent' => 1 );
wp_insert_term($Term, "category", $args);


//add another sub under the recentyl created above. 
$Term = "Sub-Sub-UnCategorized";
$args = array('parent' => 3 );
wp_insert_term($Term, "category", $args);

echo "<pre>

After running this code, you will notice that the Sub-Sub-UnCategorized is missing from the view. 

But what's funny is the dropdown. 
Check the dropdown for the *parent* selection, you will see that the missing
Sub-Sub-UnCategorized is there. 

In order to get the missing sub-sub into the view, you will have to do two things. 

1 - Add a dummy cat.
2 - Click on the categories link on the admin navigation.

With that, wp will sort this problem out and you will see everything you should have.

I cannot figure out what's causing this behavior and how to remedy this short adding the dummy cat and removing it later. 

</pre>";

?>
5
Average Joe

Peut-être que cela peut aider

delete_option('taxonomy-slug_children');

il suffit de remplacer la "taxonomie-slug" par "chat" ou une autre taxonomie que vous utilisez. Cette ligne est supposée être utilisée dans la même fonction de crochet d’action, juste après la création du terme.

2
ifdion