Les messages peuvent-ils avoir des parents?

13

Les postes sont-ils censés avoir des parents? Si oui, qu'est-ce que cela signifierait pour un poste d'avoir un parent?

De plus, s'il y a des contraintes aux postes ayant des parents, alors où est-ce appliqué? Pas dans la DB comme je le vois.

Alexander Bird
la source

Réponses:

15

Hors de la boîte, non, les messages ne peuvent pas avoir de parents. Ils peuvent être affectés à des catégories, qui peuvent être organisées de manière hiérarchique. Cependant, les pages peuvent avoir des parents et vous pouvez en créer une structure de menu à l'aide de cette fonctionnalité.

Quant à savoir où cela est appliqué: Le parent d'un message est stocké dans la colonne "post_parent" dans "wp_posts". Il n'est pas vraiment appliqué en tant que tel, juste l'interface utilisateur par défaut ne vous donne pas la possibilité de le définir et le codage WP par défaut n'utilise pas cette valeur pour les publications. Il ne serait pas trop difficile de créer un type de publication personnalisé pour avoir des publications avec les parents.

ZweiBlumen
la source
2
Notez également que les pièces jointes multimédias utilisent la post_parentcolonne pour identifier la page / publication (y compris les types de publication personnalisés) à laquelle elles sont jointes.
David Gard
@DavidGard Vous avez raison. Mais je pense que cette fonctionnalité n'affectera pas si nous post_parentattribuons à un autre "post_id" comme il en serait 0autrement.
Stranger
11

Wp a intégré des "Pages" (hiérarchiques, parents autorisés) et des "Posts" (non hiérarchiques). Il existe également d'autres types de messages, mais laissons cela de côté.

Si le Q se traduit par:

Puis-je avoir des postes hiérarchiques?

Ensuite, la réponse est oui ,… vous pouvez avoir des «messages» qui sont hiérarchiques. Mais comme ils ne sont pas intégrés, vous devrez enregistrer votre propre type de publication personnalisé - voir Arguments »hiérarchique.

De tels «articles» (ou articles, peu importe,…) auront alors - au cas où ils auraient un article parent - auront défini l'ID parent dans leur objet. Donc, en boucle, vous pouvez faire ce qui suit:

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

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

    echo "<h2>{$post->post_title} is a child of {$parent->post_title}";

    // etc.
} // endif;
kaiser
la source
2
Cloué parfaitement. Exactement ce que je cherchais.
Paras Shah
-1

Du point de vue des moteurs de recherche, deux de ces réponses combinées aideront Google à suivre la hiérarchie de vos messages, ainsi que les utilisateurs bien sûr.

  1. Ajoutez une page et utilisez-la pour héberger vos publications. "La meilleure façon de définir une page parente dans tous vos articles est via le menu (Apparence -> Personnaliser). Vous pouvez définir une page statique pour votre page d'accueil ou votre page d'articles. Lorsque vous définissez une page d'article statique, cette page s'affiche être le parent de chaque article de blog. "

  2. Modifiez la structure du permalien en / blog /% postname% comme mentionné ci-dessus. "Supposons que vous souhaitiez ajouter un blog avant la publication dans l'URL, puis assurez-vous que le nom du slug de votre page de blog est blog.

Ensuite, allez dans WP-admin-panel> paramètres> permalien et choisissez la dernière option "structure personnalisée" et ajoutez-y ce qui suit:

/ blog /% postname% /

et enregistrez les modifications. Il ne sera appliqué qu'à votre page de blog, les autres pages n'afficheront pas le blog en tant que parent. "

De cette façon, Google voit la hiérarchie dans les sitemaps comme domain.com/page/post (dans cet ordre) et trouvera également le contenu au même endroit. Tout comme les utilisateurs. Travail accompli.

Rosie
la source
-4

Supposons que vous souhaitiez ajouter un blog avant la publication dans l'URL, puis assurez-vous que le nom de slug de votre page de blog est blog.

Ensuite, allez dans WP-admin-panel> paramètres> permalien et choisissez la dernière option "structure personnalisée" et ajoutez-y ce qui suit:

/blog/%postname%/

et enregistrez les modifications.

Il ne sera appliqué qu'à votre page de blog, les autres pages n'afficheront pas le blog en tant que parent.

Deni
la source
-6

Je sais que c'est un ancien poste. Cependant, aucune de ces réponses n'est correcte et je voulais publier la solution que j'ai utilisée pour résoudre ce problème. La meilleure façon de définir une page parent dans tous vos messages est via le menu (Apparence -> Personnaliser). Vous pouvez définir une page statique pour votre page d'accueil ou votre page de publications. Lorsque vous définissez une page de publication statique, cette page sera le parent de chaque publication de blog individuelle.

LateToTheParty
la source
2
Ce n'est pas une page parent - c'est un modèle contenant une archive de messages. La configuration de cela ne rend pas les messages hiérarchiques.
kaiser
Comment est-ce pas une page parent? C'est une page statique (qui ne doit pas être une archive, quel que soit le modèle de page que vous affectez à cette page statique, peut avoir tout ce que vous voulez), et lorsque cela est configuré, vos URL suivent cette hiérarchie, ainsi que Breadcrumbs sur le site. C'est un correctif d'une minute qui vous permet d'attribuer une page statique en tant que parent du post. Sa question mentionne RIEN sur le fait qu'il soit hiérarchique en premier lieu. Peut-être pourriez-vous m'éclairer sur la façon dont cette solution serait une mauvaise pratique?
LateToTheParty
"Les messages sont-ils censés avoir un parent" est la même chose que "Les messages sont-ils hiérarchiques". Un modèle peut tout contenir , mais le simple fait qu'il contient une boucle qui renvoie et affiche une boucle d'archivage ne fait pas (a) de la page son parent (c'est juste l'endroit où la boucle se trouve) et (b) ne le fait pas faire le type construit poste « post » hiérarchique ou autrement dit, ne pas attribuer un parent. Mais oui, vous pouvez invoquer des messages en boucle selon des critères spécifiques (comme une catégorie enfant partagée).
kaiser
Ne vous laissez pas décourager par la critique ou la clarification de votre question ou réponse. Cet endroit est quelque chose où cela doit réellement se produire tout le temps pour réussir les meilleures réponses et servir de lieu wiki / bibliothèque où l'on peut aller et trouver instantanément comment faire quelque chose ou obtenir le plus d'informations possible sur le fonctionnement de quelque chose. Nous encourageons même les gens (comme vous) à commenter d'autres réponses également. Gardez à l'esprit que je n'ai mentionné nulle part que votre réponse est une mauvaise pratique . C'est vrai à bien des égards, juste l'affirmation selon laquelle cela rend le type de poste hiérarchique ne l'est pas.
kaiser