web-dev-qa-db-fra.com

Des chemins sur la manière d'afficher les publications dans un thème personnalisé?

Je suis assez nouveau dans le développement de thèmes WordPress et j’ai un doute sur cette fonction WP utilisée pour afficher mon message sur la page d’accueil:

    <?php
        if ( have_posts() ) :
            // Start the Loop.
            while ( have_posts() ) : the_post();

                /*
                 * Include the post format-specific template for the content. If you want to
                 * use this in a child theme, then include a file called called content-___.php
                 * (where ___ is the post format) and that will be used instead.
                 */
                get_template_part( 'content', get_post_format() );

            endwhile;
            // Previous/next post navigation.
            twentyfourteen_paging_nav();

        else :
            // If no content, include the "No posts found" template.
            get_template_part( 'content', 'none' );

        endif;
    ?>

Intuitivement, j'ai compris que tant qu'il y a des messages, ceux-ci sont affichés sur la page d'accueil.

Mon doute est lié à cette ligne de code:

get_template_part( 'content', get_post_format() );

En lisant la documentation, il me semble que:

1) get_template_part : charge un élément de modèle dans un modèle. Donc, je pense que par cette ligne, j'inclus un élément de modèle utilisé pour afficher un message (la structure d'un message dans ma page d'accueil), est-ce correct?

2) Qu'est-ce que get_post_format () exactement?

1
AndreaNobili

get_template_part() inclut un fichier de modèle du répertoire de thème actif.

Par exemple:

get_template_part('content') inclura le modèle content.php du dossier de thèmes.

Lorsqu'il a deux paramètres, il recherchera un modèle nommé firstParameter-secondParameter.php. Alors:

get_template_part( 'content', get_post_format() );

inclura le fichier content-{$post_format}.php.

get_post_format () renvoie l'un de ces formats définis:

aside
chat
gallery
link
image
quote
status
video
audio 

ou false. Donc, le fichier inclus sera content.php ou content-format.php

2
Manolo

1) oui!

2) WordPress prend en charge 9 formats de publication maintenant, supposons que si votre thème en supporte 2: "apartement" et "galerie", le code suivant devrait figurer dans votre functions.php:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

Vous pouvez créer différentes parties de modèle de contenu pour chaque format de publication et les enregistrer sous le nom ' content-apart.php ' et ' content-galery.php 'dans votre dossier de thème.

Si vous n'avez pas ces 2 fichiers dans votre thème, get_template_part va automatiquement utiliser le 'content.php' à la place.

1
1fixdotio

Tous les bons WordPressers ont déjà répondu à vos questions et je pense qu’ils ont réussi à éliminer vos doutes. Donc, je ne touche pas exactement à votre question, mais aux concepts.

Avant de commencer à développer un thème, je pense qu’un thème brut peut être très utile pour comprendre le concept de chaque zone spécifique. J'ai commencé le développement de thèmes avec le tutoriel de mon professeur [virtuel] Ian Stewart sur la manière de développer un thème:

Le code source de l’ensemble du didacticiel se trouve dans Google Code Trunk . Je vous suggérerais de ne pas simplement suivre le tutoriel, mais de lire les commentaires également. :)

get_template_part() est une fonction de thème - elle ne charge pas nécessairement uniquement la publication - mais peut être n'importe quoi. La partie de code (une partie du code) que vous souhaitez séparer du fichier principal, dans PHP, nous l'incluons à l'aide de la fonction include(), mais dans WordPress, nous le faisons à l'aide de get_template_part().

Le code que vous avez mentionné, séparait la partie modèle contenant le code pour afficher la publication. Vous pouvez commenter cette partie et essayer ce qui suit pour comprendre la base:

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
//get_template_part( 'content', get_post_format() ); ?>
   <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
      <h2 class="post-title"><?php the_title(); ?></h2>
      <div class="post-content"><?php the_content(); ?></div>
   </article>
<?php
endwhile;
endif;
?>

Désolé, je ne suis pas vraiment avec votre question, mais j'ai essayé de passer le concept, et je crois CONCEPT AVEC DIFFÉRENTES PERCEPTIONS IS LA CLÉ DE LA CONNAISSANCE .

MODIFIER

Vous pouvez également commencer par le thème de démarrage _s. Obtenez-le directement à partir de GitHub:

1
Mayeenul Islam