v3 (precedente)

Questa documentazione per il plugin Custom post types per WordPress ti consente di personalizzarne le funzionalità.

Per ricevere supporto professionale devi effettuare una donazione ed ottenere 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-
*** *******