Plantilla de taxonomía personalizada no funciona

9 oct 2014, 09:26:02
Vistas: 13.7K
Votos: 1

He creado un tipo de contenido personalizado llamado property, y una taxonomía llamada city asociada a este tipo de contenido. Hay varias ciudades (términos) como toronto, taiwan, dhaka.

Quiero crear una plantilla que pueda mostrar todos los posts bajo una ciudad. He creado el archivo taxonomy-city.php, pero no está funcionando.

Este es mi código para el archivo taxonomy-city.php:

<?php
/*
 * Nombre de la plantilla: Ciudad
*/
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('Error 404&#58; No encontrado', 'cmeasytheme'); ?></h3>
                            </div>
                    <?php endif; ?> 

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

Muestra todo, pero no imprime nada dentro del loop.

También he visitado estos enlaces, pero ninguno me ayudó:

2
Comentarios

¿Es posible que tu taxonomía en realidad se llame cities, por lo que el archivo debería ser taxonomy-cities.php? Además, ¿registraste la taxonomía con public=true?

Biranit Goren Biranit Goren
9 oct 2014 09:52:24

No, mi taxonomía se llama "city" y public = true

Mithun Sarker Mithun Sarker
9 oct 2014 09:56:46
Todas las respuestas a la pregunta 1
3

En primer lugar, un archivo taxonomy-{taxonomy}.php es una Plantilla de Archivo y no un buen nombre para una plantilla personalizada. Así que si deseas proceder con una plantilla personalizada, intenta nombrar el archivo con algo como template-ciudades.php y llamar el archivo desde una Página.

De lo contrario, crea una simple plantilla de archivo taxonomy-{taxonomy}.php, y en tu caso taxonomy-city.php con código como:

<?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 // código de paginación aquí ?>
                </div>
            <?php else : ?>
                <div class="post">
                    <h3><?php _e('No se encontró la ciudad', 'cmeasytheme'); ?></h3>
                </div>
            <?php endif; ?>
        </div> <!-- .page_content_wrapper -->
        <div style="clear:both;"></div>
    </div> <!-- .page-wrapper -->
</div> <!-- .page_content -->
<?php get_footer(); ?>

Y de esta manera, NO ES NECESARIO crear ninguna página ni llamar a una plantilla de página.

Sugerencias

Aunque las sugerencias no están relacionadas con WordPress, sino con Buenas prácticas:

  • Intenta nombrar tus clases separadas por guiones (-), NO por guiones bajos (_). Así que una clase como page_content_wrapper sería page-content-wrapper.
  • Evita los estilos en línea y crea una clase en su lugar. Así que el div de limpieza <div style="clear:both;"></div> puede ser algo como <div class="clearfix"></div> y puedes colocar .clearfix{clear:both} en tu archivo CSS externo.
  • Usa comentarios importantes para que puedas tener seguimiento de los divs de cierre, etc.
9 oct 2014 10:05:48
Comentarios

Gracias por tu respuesta. Me ayudó mucho. Pero el problema era diferente, cometí un error al crear el tipo de publicación "property". Puse 'exclude_from_search' => true, y después de cambiarlo a false, ahora la plantilla muestra los datos.

Mithun Sarker Mithun Sarker
9 oct 2014 12:03:37

He encontrado un tutorial relacionado con taxonomías personalizadas basadas en jerárquicas y no jerárquicas. Espero que te ayude a resolver tu problema https://www.wpblog.com/create-custom-taxonomies-in-wordpress/

Owais Alam Owais Alam
10 ago 2017 10:21:07

¿Podré relacionarlo con el producto?

Shakil Hossain Shakil Hossain
1 dic 2019 08:52:30