Vous cherchez un moyen de forcer votre type de publication personnalisé à être privé par défaut ? Bien qu'il existe probablement un plugin pour cela, nous avons créé un extrait de code rapide que vous pouvez utiliser pour forcer un type de publication personnalisé à être privé dans WordPress.
Instructions :
Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :
function force_type_private($post)
{
if ($post['post_type'] == 'my_post_type')
$post['post_status'] = 'private';
return $post;
}
add_filter('wp_insert_post_data', 'force_type_private');
N'oubliez pas de changer my_post_type par le nom de votre type de publication personnalisé. C'est un léger changement par rapport au code source et il n'inclut pas de mot de passe car il est privé et non protégé par mot de passe.
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière d'ajouter correctement des extraits de code dans WordPress, afin de ne pas endommager accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site tels que : 28 meilleurs thèmes de CV WordPress et comment créer un formulaire de candidature dans WordPress.
Bonjour,
Une idée de comment faire le même code mais pour 2 CPT différents au lieu d'un seul ?
Merci d'avance
je sais que ce fil est un peu vieux mais... comment cibler un champ personnalisé dans ce type de publication personnalisé pour changer sa valeur ?
Je l'ai modifié, donc les liens sont définis sur le nom de la publication au lieu de "my_post_type/auto-draft" lorsqu'ils sont créés. De cette façon, vous pouvez également publier des articles protégés par mot de passe.
function force_type_private($post)
{ if ($post[‘post_type’] == ‘my_post_type’) { if ($post[‘post_status’] == ‘publish’) $post[‘post_status’] = ‘private’; } return $post; } add_filter(‘wp_insert_post_data’, ‘force_type_private’);
Cela fonctionne, mais j'ai constaté que cela rend impossible le déplacement de l'article vers la corbeille... avez-vous également rencontré ce problème ?
Non, je n'ai pas eu ce problème, mais je vais essayer et voir si je peux reproduire le problème.
Oui, j'ai exactement le même problème... Quelqu'un a des idées ?
Pourquoi ne pas simplement faire : if ( post type = mon type de publication) { statut de la publication = privé ; retourner la publication ; }
Il semble que vous ayez une ligne supplémentaire inutile.
C'est vrai Adam, je l'ai corrigé.
ce code est-il correct ?
Je pense que vous avez oublié un « ELSE »
Salut Jose,
Non, c'est correct, créez simplement un nouveau type de publication personnalisé, puis ajoutez ceci à functions.php et vous remarquerez que lorsque vous sélectionnez ajouter une nouvelle publication pour ce type de publication personnalisé, elle sera par défaut sélectionnée comme privée.
Bonjour Kevin,
Toujours aucun moyen de supprimer mes publications avec ce code. Une idée ?
Cordialement,
J'ai utilisé un code comme celui-ci, qui vérifie s'ils sont dans la corbeille avant de les rendre privés :
// Forcer les publications du type personnalisé « internt-arkiv » à être privées
//… mais assurez-vous d'abord qu'elles ne sont pas « trash » sinon il est impossible de mettre une publication à la corbeille
function force_type_private($post)
{ if ($post[‘post_type’] == ‘my_post_type’) { if ($post[‘post_status’] != ‘trash’) $post[‘post_status’] = ‘private’; } return $post; } add_filter(‘wp_insert_post_data’, ‘force_type_private’);
[…] Ce post a été mentionné sur Twitter par HTMLfrp, wp_freak. wp_freak a dit : #wordpress Forcer le type de publication personnalisé à être privé http://bit.ly/fHzJuW […]