Custom post types

Questa documentazione per il plugin WordPress Custom post types ti permette di personalizzare tutte le caratteristiche.

Per ottenere supporto professionale effettua una donazione ed ottieni la versione PRO del plugin.

Creazione post type & tassonomia

Creazione campi personalizzati

Creazione template personalizzato

Hook post type

Manipola i label:

add_filter("cpt_register_labels_{POST-TYPE-ID}", function($labels){
    //
    // manipulates the $labels
    //
    return $labels;
});

Manipola gli args:

add_filter("cpt_register_args_{POST-TYPE-ID}", function($args){
    //
    // manipulates the $args
    //
    return $args;
});

Per i dettagli su queste manipolazioni visita il documentazione ufficiale di WordPress.

Hook tassonomie

Manipola i label:

add_filter("cpt_register_tax_labels_{TAX-ID}", function($labels){
    //
    // manipulates the $labels
    //
    return $labels;
});

Manipola gli args:

add_filter("cpt_register_tax_args_{TAX-ID}", function($args){
    //
    // manipulates the $args
    //
    return $args;
});

Per i dettagli su queste manipolazioni visita il documentazione ufficiale di WordPress.

Hook campi

Aggiungi supporto di un campi personalizzati:

add_filter('cpt_available_fields', function ($available_fields) {
    $available_fields['text'] = [
        'label' => __('Text', 'custom-post-types'),
        'fields' => [ // extra fields
            [
                'key' => 'placeholder',
                'label' => __('Placeholder', 'custom-post-types'),
                'info' => false,
                'required' => false,
                'type' => 'text',
                'extra' => [],
                'wrap' => [
                    'width' => '',
                    'class' => '',
                    'id' => '',
                    'layout' => ''
                ]
            ],
        ]
    ];
    return $available_fields;
});

Nell’esempio precedente viene aggiunto il supporto al tipo di campo “text”.

Manipola l’output dei campi personalizzati per tipo:

add_filter("cpt_get_field_type_{FIELD-TYPE}", function($output, $value, $post_type, $post_id){
    //
    // manipulates the $output
    //
    return $output;
}, 10, 4);

Manipola l’output dei campi personalizzati per key:

add_filter("cpt_get_field_{FIELD-ID}", function($output, $value, $post_type, $post_id){
    //
    // manipulates the $output
    //
    return $output;
}, 10, 4);

Manipola il valore dei campi personalizzati prima del salvataggio:

add_filter("cpt_sanitize_field_{FIELD-TYPE}", function($input){
    //
    // manipulates the $input
    //
    return $input;
});

Hook template

Aggiunti il supporto al tipo di wrap blank per il tuo tema:

add_filter('cpt_themes_supports_rules', function ($supports_rules) {
    $supports_rules['twentytwenty'] = [
        'file-name' => 'singular.php',
        'replace-callback' => function ($content_to_replace) {
            $content_to_replace = str_replace("get_template_part( 'template-parts/content', get_post_type() )", 'custom_post_types_get_custom_template()', $content_to_replace);
            return $content_to_replace;
        },
    ];
    return $supports_rules;
});

Nell’esempio precedente viene aggiunto il supporto del tema “Twenty Twenty”, i dati necessari sono: nome cartella tema, path del template singolo (file-name), callback per sostituire il loop predefinito con la funzione del plugin (replace-callback).

Campi impostazioni

Per evitare di sovrascrivere impostazioni importanti che potrebbero danneggiare il database del tuo sito web, i campi personalizzati delle pagine di impostazioni vengono memorizzati aggiungendo un prefisso alla key.

Se per esempio hai creato un campo nella pagina “Impostazioni > Generali” utilizzando la key “text_field” potrai recuperare quel valore utilizzando:

$field_value = get_option('general-text_field');

I prefissi da utilizzare in base a dove è stato assegnato il gruppo di campi personalizzati:

  • general-
  • writing-
  • reading-
  • discussion-
  • media-
Condividi contenuto:
*** *******