J'essaie d'utiliser get_template_part pour récupérer un fichier de modèle basé sur le type de publication actuel (slug) dans lequel se trouve l'utilisateur. Le fichier de modèle comprend uniquement une image utilisée spécifiquement pour des types de publication spécifiques.
<?php get_template_part('parts/get_post_type( $post )') ?><p id="t3-splash-title"><?php $post_type = get_post_type_object( get_post_type($post) ); echo $post_type->labels->singular_name ; ?></p>
Ce qui précède ne fait pas exploser la page, mais rien ne semble avoir de sortie. Pas sûr de ce que je fais mal ici.
Il y a un support intégré pour cela, en quelque sorte. Bien que je ne voie rien de mal avec votre code, essayez de nommer vos fichiers sur le formulaire archive-mytype.php
, content-mytype.php
etc., puis appelez get_template_part
comme ceci:
<!-- This will result in including parts/content-mytype.php -->
<?php get_template_part('parts/content', get_post_type( $post )); ?>
<p id="t3-splash-title"><?php $post_type = get_post_type_object( get_post_type($post) ); echo $post_type->labels->singular_name ; ?></p>
Votre problème ici est en partie simplement mauvais PHP et en partie un malentendu de get_template_part
.
Vous demandez littéralement un fichier nommé "parts/get_post_type ($ post)". Plus près de la droite serait ...
get_template_part('parts/'.get_post_type( $post ));
Puisque get_post_type
retourne un boolean
en cas d'échec, je m'approcherais de quelque chose de plus semblable à celui-ci ...
$type = get_post_type($post);
if (!empty($post)) {
get_template_part('parts/'.$type ));
} else {
// something or nothing; your choice
}
Maintenant get_template_part
va rechercher des noms de fichier du type "parts/-post-type.php". Il recherche {slug}-{$name}
, ou paramètre1-paramètre2, ce qui n'est probablement pas ce que vous voulez. J'imagine que vos fichiers sont en fait "parts/post-type.php", vous devrez donc repenser votre schéma de nommage.