X

Come forzare un Custom Post Type a essere privato in WordPress

Snippet di IsItWP

Stai cercando un modo per forzare il tuo custom post type a essere privato per impostazione predefinita? Sebbene probabilmente esista un plugin per questo, abbiamo creato un rapido snippet di codice che puoi utilizzare per forzare un custom post type a essere privato in WordPress.

Istruzioni:

Tutto quello che devi fare è aggiungere questo codice al file functions.php del tuo tema o in un plugin specifico per il sito:

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

Non dimenticare di cambiare my_post_type con il nome del tuo custom post type. Questa è una leggera modifica rispetto al codice sorgente e non include una password poiché questo è privato e non protetto da password.

Nota: Se questa è la prima volta che aggiungi snippet di codice in WordPress, consulta la nostra guida su come aggiungere correttamente snippet di codice in WordPress, in modo da non compromettere accidentalmente il tuo sito.

Se ti è piaciuto questo snippet di codice, prendi in considerazione la lettura dei nostri altri articoli sul sito come: 28 migliori temi WordPress per curriculum e come creare un modulo di candidatura in WordPress.

Commenti   Lascia una risposta

  1. Salve,

    Qualche idea su come fare lo stesso codice ma per 2 CPT diversi invece di uno?

    Grazie in anticipo

  2. Fabrizio Fabricatore 25 luglio 2013 alle 08:33

    so che questo thread è un po' vecchio ma... come si può puntare un campo personalizzato in quel custom post type per cambiarne il valore?

  3. Martin Storbeck 5 aprile 2012 alle 07:11

    L'ho modificato, in modo che i link siano impostati sul nome del post invece di "my_post_type/auto-draft" quando vengono creati. In questo modo puoi anche pubblicare post protetti da password.

    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. Questo funziona, ma ho scoperto che rende impossibile spostare il post nel cestino... hai anche tu riscontrato questo problema?

    1. No, non ho avuto questo problema, ma ci proverò e vedrò se riesco a replicare il problema.

    2. Sì, ho esattamente lo stesso problema... Qualcuno ha qualche idea?

  5. Adam Capriola 24 marzo 2011 alle 13:27

    Perché non fai semplicemente: if ( post type = my post type) { post status = private; return post; }

    Sembra che tu abbia una riga in più non necessaria.

    1. È vero Adam, l'ho corretto.

  6. questo codice è corretto?
    Penso che ti sia dimenticato un "ELSE"

    1. Ciao Jose,
      No, è corretto, crea solo un nuovo tipo di post personalizzato, quindi aggiungi questo a functions.php e noterai che quando selezioni "Aggiungi nuovo" per quel tipo di post personalizzato, avrà "privato" selezionato per impostazione predefinita.

      1. Ciao Kevin,

        Ancora nessun modo per eliminare i miei post con questo codice. Qualche idea?

        Saluti,

        1. Ho usato un codice come questo, che controlla se sono nel cestino prima di renderli privati:
          // Forza i post del tipo personalizzato 'internt-arkiv' a essere privati
          // ... ma prima assicurati che non siano 'cestino' altrimenti è impossibile cestinare un 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. Tweet che menzionano Wordpress Forza il tipo di post personalizzato a essere privato – wpsnipp.com Snippet di codice Wordpress per il tuo blog -- Topsy.com 15 febbraio 2011 alle 00:37

    [...] Questo post è stato menzionato su Twitter da HTMLfrp, wp_freak. wp_freak ha detto: #wordpress Forza il tipo di post personalizzato a essere privato http://bit.ly/fHzJuW [...]

Aggiungi un commento

Siamo lieti che tu abbia scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra normativa sulla privacy e tutti i link sono nofollow. NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.

Checklist per il lancio di WordPress

La Guida Definitiva per il Lancio di WordPress

Abbiamo raccolto tutti gli elementi essenziali della checklist per il lancio del tuo prossimo sito web WordPress in un comodo ebook.
Sì, Inviami l'eBook Gratuito!