web-dev-qa-db-fra.com

Les publications peuvent-elles avoir des parents?

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 existe des contraintes pour les postes ayant des parents, où est-ce que cela est appliqué? Pas dans la DB comme je le vois.

11
Alexander Bird

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

Pour savoir où cela est appliqué: Le parent d'une publication est stocké dans la colonne "post_parent" dans "wp_posts". Ce 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 par défaut WP n'utilise pas cette valeur pour les publications. Cependant, il ne serait pas trop difficile de créer un type de publication personnalisé pour avoir des publications avec les parents.

14
ZweiBlumen

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

Si le résultat Q:

Puis-je avoir des posts hiérarchiques?

Ensuite, la réponse est Oui ,… vous pouvez avoir des "posts" hiérarchiques. Mais comme ils ne sont pas intégrés, vous devrez enregistrer votre propre Type de message personnalisé - voir Arguments "hierarchical.

De telles "publications" (ou articles, peu importe,…) auront alors, si elles ont une publication parentale, défini l'ID parent dans leur objet. Donc, dans une 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;
9
kaiser