帖子的侧边栏小部件中的自定义帖子类型存档

时间:2014-09-05 16:03:00

标签: wordpress archive custom-post-type

这很好用。我在下拉列表中看到自定义帖子类型存档,但是当我选择任何月份时,我会在该存档页面上看到所有自定义帖子。虽然每个月只有一个帖子,例如我在7月份和8月份有1个帖子,下拉计数器显示正确,但是当我选择它们时,我会看到所有自定义帖子而不是一个。对此有什么解决方案吗?

   add_filter( 'getarchives_where', 'custom_getarchives_where' );
    function custom_getarchives_where( $where ){
        $where = str_replace( "post_type = 'post'", "post_type IN ( 'post', 'fruits' )", $where );
        return $where;
    }

    add_action( 'pre_get_posts', 'add_podcasts_to_archive' );
    function add_podcasts_to_archive( $query ) {
        if ( $query->is_main_query() && $query->is_archive() && !is_admin() )
            $query->set( 'post_type', array( 'post', 'fruits' ) );
        return $query;
    }

1 个答案:

答案 0 :(得分:0)

您问题中的代码有效。我真的怀疑你的问题在于你的archive.php模板。

以下是我的想法

  • 您已使用自定义查询替换了主查询。任何存档页面上的不正确的自定义查询都是灾难性的。这是我能想到的唯一原因,因为你从自定义帖子tytpe中获得所有帖子

我的解决方案是,删除您的自定义查询,将其替换为默认循环,如果您需要更多自定义,请使用pre_get_posts添加。

编辑

对于额外的阅读,将来可能会有很多