web-dev-qa-db-fra.com

Le modèle de taxonomie personnalisé ne fonctionne pas

J'ai créé un type de message personnalisé nommé property et une taxonomie nommée city est associée à ce type de message. Il existe plusieurs villes (termes) comme toronto, taiwan, dhaka.

Je veux créer un modèle qui peut afficher tous les messages sous une ville. J'ai créé le fichier taxonomy-city.php, mais cela ne fonctionne pas.

Voici mon code pour le fichier taxonomy-city.php.

<?php
/*
 * Template name: City
*/
get_header();

?>
<div id="page_content">
        <div class="page-wrapper">

            <?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
            <div id="page_content_wrapper">

                <div id="careers_table">
                    <p class="content_text">asdsd</p>

                </div>

                    <?php endwhile; ?>
                    <?php else : ?>
                            <div class="post">
                                <h3><?php _e('404 Error&#58; Not Found', 'cmeasytheme'); ?></h3>
                            </div>
                    <?php endif; ?> 

            </div>
            <div style="clear:both;"></div>
        </div>
        </div>
<?php get_footer(); ?>

Il montre tout, mais n'imprime rien dans la boucle.

J'ai aussi visité ces liens, mais aucun d'entre eux ne m'aide

1

Tout d’abord, un fichier taxonomy-{taxonomy}.php est un modèle d’archive et non un bon nom pour un modèle personnalisé. Par conséquent, si vous souhaitez utiliser un modèle personnalisé, essayez de nommer le fichier avec quelque chose comme template-cities.php et appelez-le sur une page.

Sinon, créez un modèle d'archive taxonomy-{taxonomy}.php simple et, dans votre cas, taxonomy-city.php avec le code suivant:

<?php get_header(); ?>
<div id="page_content">
    <div class="page-wrapper">
        <div id="page_content_wrapper">
            <?php if (have_posts()) : ?>
                <div id="careers_table">
                    <?php while (have_posts()) : the_post(); ?>
                        <p class="content_text"><?php the_title(); ?></p>
                    <?php endwhile; ?>
                    <?php // pagination code here ?>
                </div>
            <?php else : ?>
                <div class="post">
                    <h3><?php _e('No City Found', 'cmeasytheme'); ?></h3>
                </div>
            <?php endif; ?>
        </div> <!-- .page_content_wrapper -->
        <div style="clear:both;"></div>
    </div> <!-- .page-wrapper -->
</div> <!-- .page_content -->
<?php get_footer(); ?>

Et de cette façon, PAS BESOIN de créer une page et d'appeler un modèle de page.

Suggestions

Bien que les suggestions ne soient pas liées à WordPress, mais à la bonne pratique:

  • Essayez de vous nommer des classes séparées par des tirets (-), PAS séparées par des traits de soulignement (_). Donc, une classe comme page_content_wrapper serait page-content-wrapper.
  • Évitez les styles en ligne et créez un cours à la place. Ainsi, la division div <div style="clear:both;"></div> peut être quelque chose comme <div class="clearfix"></div> et vous pouvez placer .clearfix{clear:both} dans votre fichier CSS externe.
  • Utilisez des commentaires importants pour pouvoir garder une trace des divs de clôture, etc.
2
Mayeenul Islam