模板分类-{soronomy}.php不显示我的帖子

时间:2020-02-15 作者:Sema Hernández

我有一个无法解决的简单问题。

我有一个名为“Hardware”的自定义帖子类型taxonomy 已调用“hardware_category”. 我试图显示每个术语中的自定义帖子列表,其中包含文件taxonomy-hardware\\u类别。php,但不会返回任何结果(它应该显示5篇文章)。

在我的模板中有什么特别需要考虑的吗?

谢谢

<?php 

// File: taxonomy-hardware_category.php

get_header(); 
$term = get_term_by( \'slug\', get_query_var( \'term\' ), get_query_var( \'taxonomy\' ) );
?>

<div class="main">

    <?php if (have_posts()) : ?>
        <?php while (have_posts()) : the_post(); ?>


        <div class="product">
            <?php the_post_thumbnail(\'full\'); ?>
            <?php the_title(); ?>
        </div>

        <?php endwhile; ?>
    <?php endif; ?>

</div>

<?php get_footer(); ?>

1 个回复
最合适的回答,由SO网友:user3135691 整理而成

首先,您没有对$term变量做任何操作。您正在查询它,但它就在那里,等待被提取。

在分类法模板中尝试以下代码,名为taxonomy-hardware_category.php:

// prepare the variables for the query
$tax = get_query_var(\'taxonomy\');
$term = get_query_var(\'term\');

// Setup the loop, build the html, return it, clean up the query
    $hardware_args = array(
        \'post_type\' => \'hardware\',
         // This should get you the result
         // the two arrays isn\'t a mistake
         \'tax_query\' => array(
                        array(
                            \'taxonomy\' => $tax,
                            \'field\' => \'slug\',
                            \'terms\' => $term
                        )
                    ),
                    \'posts_per_page\' => \'30\',
                    \'orderby\' => \'name\',
                    \'order\'=>\'ASC\'
                );
        $loop = new WP_Query($hardware_args );
        $html = \'\';
        while ($loop->have_posts()) : $loop->the_post();

        $html .= \'<div class="some-custom-class-like col-md-12">\';
            $html .= \'<div class="hardware">\';
                $html .= \'<a href="\'.get_the_permalink().\'" class="permalink" title="\'.get_the_title().\'">\';
                $html .= \'<div class="thumbnail-wrap>\';
                    if(has_post_thumbnail()) {
                        $html .= \'<img src="\'.get_the_post_thumbnail_url().\'" class="img-fluid" alt="\'.get_the_title().\'&nbsp;\'.__(\'Hardware preview\', \'textdomain\').\'">\';
                                }
                            $html .= \'</div>\';
                        $html .= \'</a>\';
                        $html .= \'<a href="\'.get_the_permalink().\'" class="title-permalink btn btn-outline-primary" title="\'.get_the_title().\'"><span class="the-title">\'.get_the_title().\'</span></a>\';
                        $html .= \'<div class="hardware-metadata">\';
                        // Some more metadata can be put here for example
                        $html .= \'</div>\';
                    $html .= \'</div>\';
                $html .= \'</div>\';

                endwhile;
                // Echo it all out
                echo $html;
                wp_reset_postdata();
            ?>

相关推荐

Wp_Term_Taxonomy.Parent引用了什么?

我最初的想法是,它引用了另一种分类法(即wp_term_taxonomy.parent 到wp_term_taxonomy.term_taxonomy_id). Corcel这样的怪物built under this assumption. 然而,我done some digging 大多数信息似乎表明它实际上引用了wp_terms.term_id. 在Corcel的案例中,我认为这种巧合是可行的——WordPress将设置term_id 以及term_taxonomy_id 到相同的值。如果您弄乱了数据