X

Comment forcer un type d’article personnalisé à être privé dans WordPress

Snippets by IsItWP

Vous cherchez un moyen de forcer votre type d’article 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 d’article personnalisé à être privé dans WordPress.

Instructions:

Tout ce que vous avez à faire est d’ajouter ce code dans le fichier functions.php de votre thème ou dans un plugin spécifique à votre 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 remplacer my_post_type par le nom de votre type d’article personnalisé. Il s’agit d’un léger changement par rapport au code source et il n’y a pas de mot de passe car il s’agit d’une fonction privée qui n’est pas protégée par un mot de passe.

Note : Si c’est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez vous référer à notre guide sur la façon d’ajouter correctement des extraits de code dans WordPress, afin de ne pas briser accidentellement votre site.

Si vous avez aimé cet extrait de code, n’hésitez pas à consulter nos autres articles sur le site comme : 28 meilleurs thèmes WordPress de CV et comment créer un formulaire de demande d’emploi sur WordPress.

Commentaires   laisser une réponse

  1. Hello,

    Any idea how to do the same code but for 2 different CPT instead one?

    Thanks in advance

  2. Fabrizio Fabricatore juillet 25, 2013 à 8:33 am

    i know this thread is a little old but…how can you target a custom field in that custom post type to change it’s value?

  3. Martin Storbeck avril 5, 2012 à 7:11 am

    I edited it, so links are set to the post name instead of “my_post_type/auto-draft” when they are created. This way you can also post password-protected posts.

    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’);

  4. This works, but I have found that it makes the post impossible to move to the trash… have you also experienced this?

    1. No I have not had this issue, but ill give it a try and see if I can replicate the problem.

    2. Yes, I’m having the exact same problem.. Anybody have any ideas?

  5. Adam Capriola mars 24, 2011 à 1:27 pm

    Why don’t you just do: if ( post type = my post type) { post status = private; return post; }

    Seems like you have an extra unneeded line.

    1. This is true Adam, fixed it.

  6. is this code correct?
    I think that you forgot one “ELSE”

    1. Hi Jose,
      No it is correct, just create a new custom post type then add this to the functions.php and you will notice when you select add new for that custom post type it will be default have private selected.

      1. Hello Kevin,

        Still no way to delete my posts with this code.Any idea ?

        Regards,

        1. I used code like this, which checks if they are in the trash before making them private:
          //Force posts of custom type ‘internt-arkiv’ to be private
          //…but first make sure they are not ‘trash’ otherwise it is impossible to trash a post
          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’);

  7. Tweets that mention Wordpress Force custom post type to be private – wpsnipp.com Wordpress code snippets for your blog -- Topsy.com février 15, 2011 à 12:37 am

    […] This post was mentioned on Twitter by HTMLfrp, wp_freak. wp_freak said: #wordpress Force custom post type to be private http://bit.ly/fHzJuW […]

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !