web-dev-qa-db-fra.com

Supprimer tous les types d'articles personnalisés lors de la suppression d'utilisateur

delete all custom post type when delete user

J'ai un problème avec les types de publication personnalisés. Lorsque je supprime l'utilisateur, je ne peux pas supprimer la publication ou attribuer toutes les publications.

3
varundev

Si vous supprimez les publications personnalisées, si vous supprimez un utilisateur, connectez-vous au crochet delete_user. Ce raccordement vous donne la possibilité d’appeler des actions et d’exécuter d’autres tâches, telles que la suppression de publications sur cet ID utilisateur.

Voir le codex pour plus d’informations et un exemple de source.

1
bueltge

1) Vos types de publications que vous souhaitez supprimer doivent avoir un champ actif pour l'auteur ( register_post_type -> supports -> author).

2) Ou vous pouvez utiliser le filtre post_types_to_delete_with_user filter, voir:

add_filter("post_types_to_delete_with_user", "post_types_to_delete_with_user_callback", 10, 2);

function post_types_to_delete_with_user_callback(array $postTypesToDelete, $userId) {
  $postTypesToDelete[] = "YOUR_POST_TYPE_KEY";
  return $postTypesToDelete;
}
0
Martin Hlaváč

J'utilise les publications personnalisées sur mon site et, une fois l'utilisateur supprimé, toutes ses publications personnalisées disparaissent également.

Êtes-vous sûr que, dans votre code, l'ID utilisateur est l'auteur correct pour ces publications - en fonction de la manière dont il est codé, l'auteur peut devenir l'administrateur. J'ai déjà vu, avec une modération personnalisée, que l'auteur est actuellement stocké dans une balise méta distincte, mais wordpress pense que l'auteur est en réalité l'administrateur qui l'a approuvée.

Cela dépend de la manière dont votre thème a été écrit et du fonctionnement des autres fonctions de votre site Web.

Je vous recommanderais de jeter un coup d'œil à l'un de ces messages personnalisés pour vous assurer de l'identité de l'auteur enregistré. S'il est différent, vous devrez alors placer une requête dans le message delete_user hook comme suggéré par @bueltge et supprimer. les posts trouvés avec l'auteur meta tag == utilisateur

0
Bysander