为父类别创建每月存档

时间:2014-12-04 作者:notGettingStabbed

我正在开发的网站的一部分功能类似于月刊,有几个不同的部门。因此,我将“杂志”设置为父类别,将“艺术”和“音乐”设置为子类别(可能还有更多子类别)。

THE GOAL
我正在尝试设置永久链接结构,例如,http://mysite.com/magazine/2014/12将显示一个页面,其中包含2014年12月《杂志》及其子类别的所有帖子。

THE CURRENT STATE
目前,我的permalink结构设置为:/%category%/%year%/%monthnum%/%day%/%postname%/

访问上面的URL可以有效地访问http://mysite.com/magazine/—这些职位来自多个月。然而,访问http://mysite.com/art/2014/12 作品,因为我看到了指定月份的所有“艺术”帖子。

我需要一个复杂的重写,还是走错了路?我遇到了这一点,这基本上与我想做的相反:Remove parent category from permalink? Basically only have the child category?.

如有任何见解,将不胜感激。

谢谢

UPDATE 1
我决定暂时删除我的自定义类别模板category-magazine.php 而且杂志档案工作正常。所以我的模板有问题,破坏了它。它分为三个循环(每个部门一个)。这可能是造成问题的原因吗???

UPDATE 2
以下是我在《多循环分类杂志》档案中的内容:

    <?php // 1st Query
    $col1 = new WP_Query(
        array(
            \'posts_per_page\'            => 1,
            \'cat\'                       => 31
                )
            );
    ?>

    <?php if ( $col1->have_posts() ) : ?>

        <div class="post-list group col-1">

            <?php while ( $col1->have_posts() ): $col1->the_post(); ?>
            <?php get_template_part(\'content\'); ?>
            <?php endwhile; wp_reset_postdata(); ?>

        </div><!--/.post-list-->


        <?php endif; ?>

        <?php /* The 2nd Query  */
        $col2 = new WP_Query(
            array(
                \'posts_per_page\'            => 1,
                \'cat\'                       => 28
            )
        );

        ?>

        <?php if ( $col2->have_posts() ) : ?>

            <div class="post-list group col-2">

            <?php while ( $col2->have_posts() ): $col2->the_post(); $col2->next_post(); ?>
            <?php echo get_template_part(\'content\'); ?>
            <?php endwhile; wp_reset_postdata(); ?>


            </div><!--/.post-list-->

    <?php endif; ?> `
这在访问杂志分类页面时效果很好,但对存档页面不起作用。

1 个回复
SO网友:notGettingStabbed

好吧,我解决了:

我查询了我们所在页面的年份和月份:

$year     = get_query_var(\'year\');
$monthnum = get_query_var(\'monthnum\');
然后我向每个WP\\U查询添加了日期参数:

        $col1 = new WP_Query(
        array(
            \'year\'                      => $year,
            \'monthnum\'                  => $monthnum,
            \'posts_per_page\'            => 1,
            \'cat\'                       => 31
            )
        );
这使我能够将“杂志”存档页的部门划分为不同的区域,而不是将它们混合在一个循环中。

结束

相关推荐

Get a list of categories ids

我正在使用基于自定义帖子类型的过滤器制作一个公文包。该过滤器必须只显示公文包中显示的帖子的类别,因为用户可以在短代码中通过id指定它们-[公文包id=“1,2,3”],而我无法获得该类别id的列表。下面是一个简单的例子,说明我正在尝试做什么:来自快捷码的自定义帖子ID列表:$ids 相同ID的数组:$id_array = explode(\',\', $ids) 必须返回类别ID列表的感兴趣的变量:$cat_ids = ??? 接下来,我们只获取具有所需id的类别:$ca