Aggiungere un campo personalizzato alla pagina archivio?

3 lug 2017, 11:23:38
Visualizzazioni: 13.7K
Voti: 7

Aggiungere campi all'archivio?

Sto usando il plugin Advanced Custom Fields (ma non è rilevante perché posso anche usare i campi nativi di WP) e voglio aggiungere un campo personalizzato alla pagina archivio dei post personalizzati.

Il problema è che non esiste una pagina archivio predefinita dove poter allegare il campo (anche se puoi aggiungerlo alle singole categorie poiché sono presenti nell'area di amministrazione).

Creare un template di pagina personalizzato = nessuna evidenziazione nel menu

Una soluzione sarebbe creare un template di pagina personalizzato per gli archivi. Ma in questo modo perdi la capacità di evidenziarlo nella navbar quando sei su un singolo post/categoria, perché questa nuova pagina non sarà riconosciuta come genitore del singolo.

Ho ragione nel dire che non c'è modo di aggiungere campi all'archivio mantenendo l'evidenziazione nel menu?

0
Tutte le risposte alla domanda 1
4

Utilizzando il plugin Advanced Custom Fields puoi assegnare pagine di opzioni al tuo custom post type in questo modo:

if( function_exists('acf_add_options_page') )
{
    acf_add_options_page(array(
        'page_title'    => 'Opzioni YOUR_PAGE_TILE',
        'menu_title'    => 'Opzioni YOUR_MENU_TITLE',
        'menu_slug'     => 'options_YOUR_SLUG',
        'capability'    => 'edit_posts',
        'parent_slug'   => 'edit.php?post_type=YOUR_CUSTOM_POSTTYPE_SLUG',
        'position'      => false,
        'icon_url'      => 'dashicons-images-alt2',
        'redirect'      => false,
    ));
}

In questo modo ottieni una pagina di opzioni a cui puoi assegnare campi successivamente. Tieni presente che tutti i campi che assegni a quella pagina di opzioni non sono vincolati al tuo custom post type. Sono come campi di opzioni "normali" ma li avrai nella sezione del tuo custom post type nel menu del backend di WordPress. Penso sia necessario utilizzare la versione pro del plugin - oppure avere l'addon installato per costruire pagine di opzioni.

3 lug 2017 17:12:04
Commenti

Grazie. Aggiunge l'opzione ma per qualche motivo non la visualizza nella pagina effettiva. Recuperi il valore come al solito con the_field()?

Runnick Runnick
3 lug 2017 18:02:37

Sto lavorando con template twig ma dovrebbe funzionare se lo fai così: $options= get_fields('option'); e poi ottieni il valore con echo $options['YOUR_FIELDNAME'];

Luckyfella Luckyfella
3 lug 2017 18:07:20

In realtà è the_field('option_name', 'option') se a qualcuno interessa.

Runnick Runnick
3 lug 2017 20:53:21

Entrambi i metodi funzionano. La tua soluzione risparmia risorse, ovviamente. Se hai un sito con non troppi valori di opzione, secondo me è più carino assegnarli tutti a un array. In questo modo non devi ripetere continuamente la scrittura di the_field(..., 'option').

Luckyfella Luckyfella
3 lug 2017 21:16:20