显示特定分类的帖子

时间:2018-08-19 18:11:39

标签: wordpress custom-post-type taxonomy custom-taxonomy

我正在构建一个小插件,该插件可以使用新的帖子类型和自定义分类法对其进行分组。我现在想做两件事:

  1. 在页面上显示所有分类法“ slowka”的帖子:/ slowka /
  2. 显示特定分类法“ slowka”的帖子,例如 页面上的“ test1”:/ slowka / test1 /。我猜它应该像正常帖子的类别一样工作。

我的帖子类型是抽认卡:

handle(handlerInput) {
    const randomFact1 = cookbook.getRandomItem(data);
    var index1 = data.indexOf(randomFact1); // find the index
    var randomFact2 = cookbook.getRandomItem(data); // second random fact
    var index2 = data.indexOf(randomFact2);
    // to find a non-repeating random fact
    if (index1 == index2 ) {
      if(index2 == data.length-1) { //index2 is the last index
        randomFact2 = data[index2-1];
      } else {
        randomFact2 = data[index2+1];
      }
    } 
    const speechOutput = '<s>' + GET_FACT_MESSAGE + randomFact1 + '</s>' +
                         '<s> here is another one: '+ randomFact2 + '</s>';
    console.log(data);
    return handlerInput.responseBuilder
      .speak(speechOutput)
      .withSimpleCard(SKILL_NAME, randomFact1 + '\n \n' + randomFact2)
   }

我的分类法是slowka。

register_post_type( 'flashcards', 
    array(
        'labels' => array(
            'name' => __( 'Słówka' ),
            'singular_name' => __( 'Słówko' )
        ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array( 'slug' => 'slowko' ),
        'supports' => array( 'author' )
    )
);

此刻,我在taxonomy-slowka.php文件中拥有这个。

register_taxonomy(
    'slowka',
    'flashcards',
    array(
        'label' => __( 'Zestawy słówek' ),
        'rewrite' => array( 'slug' => 'slowka' ),
        'hierarchical' => true,
    )
);

分类法的页面/ slowka /显示404。此分类法类别之一的页面针对每个类别显示所有它们。请告诉我该怎么办。我搜索了所有stackoverflow和Google,但没有找到答案。

编辑:

我已经找到第二期的解决方案。仅需几行就可以很好地工作:

        $custom_terms = get_terms('slowka');

        foreach($custom_terms as $custom_term) {
            wp_reset_query();
            $args = array(
                'post_type' => 'flashcards',
                'tax_query' => array(
                    array(
                        'taxonomy' => 'slowka',
                        'field' => 'slug',
                        'terms' => $custom_term->slug
                    ),
                ),
            );

            $loop = new WP_Query($args);
            if($loop->have_posts()) {
                echo '<h2>'.$custom_term->name.'</h2>';

                while($loop->have_posts()) : $loop->the_post();
                    echo '<a href="'.get_permalink().'">'.get_the_title().'</a><br>';
                endwhile;
            }
        }

0 个答案:

没有答案