I post possono avere dei genitori?

13 dic 2011, 04:53:54
Visualizzazioni: 42.4K
Voti: 17

I post sono destinati ad avere dei genitori? Se sì, cosa significherebbe per un post avere un genitore?

Inoltre, se ci sono dei vincoli per i post che hanno dei genitori, dove viene applicato questo vincolo? Non lo vedo nel database.

0
Tutte le risposte alla domanda 5
4
16

Di default, no, gli articoli non possono avere genitori. Possono essere assegnati a categorie, che a loro volta possono essere organizzate gerarchicamente. Le pagine, invece, possono avere genitori e puoi costruire una struttura di menu sfruttando questa funzionalità.

Per quanto riguarda dove questo viene implementato: il genitore di un articolo è memorizzato nella colonna "post_parent" della tabella "wp_posts". Non è proprio una limitazione imposta, è semplicemente che l'interfaccia utente predefinita non ti dà la possibilità di impostarlo e il codice standard di WordPress non utilizza questo valore per gli articoli. Non sarebbe troppo difficile creare un tipo di post personalizzato per avere articoli con genitori però.

13 dic 2011 06:38:22
Commenti

Nota inoltre che gli allegati multimediali utilizzano la colonna post_parent per identificare la pagina/post (inclusi i custom post type) a cui sono associati.

David Gard David Gard
2 apr 2014 14:40:22

@DavidGard Hai ragione. Ma penso che quella funzionalità non verrà influenzata se assegniamo post_parent a un altro "post_id" visto che altrimenti sarebbe 0.

Stranger Stranger
1 feb 2017 14:23:17

e se volessi che il post 1 e il post 2 abbiano due genitori diversi (che sono pagine)

magnus magnus
29 ago 2023 14:29:36

@magnus Ho convertito questo in un commento e l'ho inserito qui, ma non so a chi stavi cercando di rispondere, l'ordine in cui le cose appaiono è basato sul numero di voti non sul tempo, ricorda che questo non è un forum di discussione/messageboard, e se hai una domanda è meglio farla cliccando sul pulsante "ask question" in alto a destra. Lasciare domande nella casella delle risposte farà sì che venga segnalata per moderazione e potresti essere segnalato come spambot

Tom J Nowell Tom J Nowell
29 ago 2023 17:06:34
1
16

WordPress ha integrato "Pagine" (gerarchiche, con genitori consentiti) e "Articoli" (non gerarchici). Ci sono anche altri tipi di post, ma lasciamoli da parte per ora.

Se la domanda è:

Posso avere articoli gerarchici?

Allora la risposta è ,... puoi avere "articoli" che sono gerarchici. Ma poiché non sono integrati di default, dovrai registrare il tuo Tipo di Post Personalizzato - vedi Arguments » hierarchical.

Questi "Articoli" (o post, come preferisci,...) avranno - nel caso abbiano un articolo genitore - impostato l'ID del genitore all'interno del loro oggetto. Quindi in un loop potresti fare quanto segue:

if ( have_posts )
{
    the_post();
    // ecc.

    global $post;
    // richiama il genitore: http://codex.wordpress.org/Function_Reference/get_post
    $parent = get_post( $post->post_parent );

    echo "<h2>{$post->post_title} è un figlio di {$parent->post_title}";

    // ecc.
} // endif;
13 dic 2011 06:51:29
Commenti

Centrato perfettamente. Esattamente ciò che stavo cercando.

Paras Shah Paras Shah
3 gen 2017 13:29:31
0
-1

Dal punto di vista dei motori di ricerca, la combinazione di queste due soluzioni aiuterà Google a tracciare la gerarchia dei tuoi articoli, oltre che gli utenti ovviamente.

  1. Aggiungi una pagina e usala come host per i tuoi articoli. "Il modo migliore per impostare una pagina genitore per tutti i tuoi articoli è attraverso il menu (Aspetto -> Personalizza). Puoi impostare una pagina statica come homepage o come pagina degli articoli. Quando imposti una pagina statica per gli articoli, quella pagina diventerà il genitore per ogni singolo post del blog."

  2. Modifica la struttura dei permalink in /blog/%postname% come menzionato sopra. "Supponi di voler aggiungere 'blog' prima del post nell'URL, assicurati che lo slug della tua pagina blog sia proprio 'blog'.

Poi vai a Pannello di amministrazione WP > Impostazioni > Permalink e scegli l'ultima opzione "Struttura personalizzata" e aggiungi quanto segue:

/blog/%postname%/

e salva le modifiche. Questo verrà applicato solo alla tua pagina blog, le altre pagine non mostreranno 'blog' come genitore."

In questo modo, Google vedrà la gerarchia nelle sitemap come dominio.com/pagina/articolo (in quest'ordine) e troverà i contenuti nello stesso posto. Lo stesso vale per gli utenti. Problema risolto.

2 set 2015 16:36:41
0
-4

Supponi di voler aggiungere "blog" prima del post nell'URL, assicurati che lo slug della tua pagina blog sia "blog".

Quindi vai su Pannello di amministrazione WP > Impostazioni > Permalink e seleziona l'ultima opzione "struttura personalizzata" e aggiungi quanto segue:

/blog/%postname%/

e salva le modifiche.

Questa modifica sarà applicata solo alla tua pagina blog, le altre pagine non mostreranno "blog" come genitore.

29 ago 2014 00:26:12
4
-6

So che questo è un vecchio post. Tuttavia nessuna di queste risposte è corretta, e volevo condividere la soluzione che ho utilizzato per risolvere questo problema. Il modo migliore per impostare una pagina genitore per tutti i tuoi articoli è attraverso il menu (Aspetto -> Personalizza). Puoi impostare una pagina statica come tua home page o pagina degli articoli. Quando imposti una pagina statica per gli articoli, quella pagina diventerà il genitore per ogni singolo post del blog.

2 apr 2014 13:31:14
Commenti

Non è una pagina genitore - è un template che contiene un archivio di articoli. Configurare questo non rende gli articoli gerarchici.

kaiser kaiser
2 apr 2014 14:24:33

Come può non essere una pagina genitore? È una pagina statica (che tra l'altro non deve per forza essere un archivio, qualunque template di pagina assegni a quella pagina statica può contenere ciò che vuoi), e quando è configurata i tuoi URL seguono quella gerarchia, così come i Breadcrumb nel sito. È una modifica da un minuto che ti permette di assegnare una pagina statica come genitore degli articoli. La sua domanda non menziona ASSOLUTAMENTE che debba essere gerarchico in primo luogo. Forse potresti illuminarmi su come questa soluzione possa essere una cattiva pratica?

LateToTheParty LateToTheParty
6 apr 2014 18:11:50

"Gli articoli dovrebbero avere un genitore" è la stessa cosa di "Gli articoli sono gerarchici". Un template può contenere qualsiasi cosa, ma il semplice fatto che contenga un loop che restituisce e visualizza un archivio di articoli non (a) rende quella pagina il suo genitore (è solo il luogo dove il loop si trova per caso) e (b) non rende il post type built-in "post" gerarchico o in altre parole, non assegna un genitore. Ma sì, puoi richiamare articoli in un loop con criteri specifici (come una categoria figlio condivisa).

kaiser kaiser
6 apr 2014 19:19:16

Non lasciarti scoraggiare dalle critiche o dai chiarimenti sulla tua domanda o risposta. Questo è un luogo in cui ciò deve accadere continuamente per far emergere le migliori risposte e creare una sorta di wiki/biblioteca dove poter trovare subito come fare qualcosa o ottenere il massimo delle informazioni su come funziona qualcosa. Incoraggiamo addirittura le persone (come te) a commentare anche le altre risposte. Tieni presente che in nessun punto ho detto che la tua risposta sia una cattiva pratica. È corretta sotto molti aspetti, solo l'affermazione che rende il post type gerarchico non lo è.

kaiser kaiser
6 apr 2014 19:21:57