Si vous cliquez sur un lien qui n'existe pas dans mon site principal , par exemple , ce lien , je prévois que WordPress utilise le fichier index.php
par défaut qui contient cette boucle:
<div class="main col <?php post_class(); ?>">
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $post_id = get_the_ID(); ?>
<?php get_template_part('content',get_post_format()); ?>
</div>
<div class="main col">
<?php comments_template(); ?>
</div>
<?php endwhile; ?>
<?php else: ?>
<div class="main col">
<?php get_template_part('content', 'none'); ?>
</div>
<?php endif; ?>
Je pense donc que WordPress chargera le fichier content-none.php
, mais ce n’est pas le cas.
Qu'est-ce que ça veut dire? Est-ce que je manque toute logique nécessaire pour faire quelque chose qui le fait quand il n'y a pas de lien/page réel?
La condition que vous utilisez pour générer get_template_part('content', 'none');
n'est déclenchée que s'il n'y a pas de publication dans la boucle principale, par exemple, lorsqu'une catégorie ne contient aucune publication:
if (have_posts()){
while(have_posts()) {
the_post();
// If the category has a post and we are on a category page, then show the posts
get_template_part('content', 'archive');
}
} else {
//If the category has no posts, display a message that no post exists
get_template_part('content', 'none');
}
Mais cela ne se produit que lorsque vous visitez www.example.com/category/some-cat/
, et le /some-cat/
est en réalité un slug de catégorie existant. Si vous essayez d'accéder à une page qui n'existe pas, le modèle 404.php
sera utilisé à la place.