Skip to content

Archive widget uses wrong slug if has_archive is defined as a string #19

@ykyu

Description

@ykyu

Currently the plugin uses the CPT's post type slug, but when defining the CPT, it is possible to assign a specific archive slug.

E.g. for post type "movie" a single movie would be at site.com/movie/the-lion-king, while a movie index or archive view might be at site.com/movielist/2020/12. The plugin currently would use site.com/movie/2020/12, which would 404.

The fix is simple. In /inc/widget-custom-post-type-archive.php

Find:
$archive_name = ! empty( $type_obj->rewrite['slug'] ) ? $type_obj->rewrite['slug'] : $posttype;

Replace:
$archive_name = is_string($type_obj->has_archive) ? $type_obj->has_archive : (! empty( $type_obj->rewrite['slug'] ) ? $type_obj->rewrite['slug'] : $posttype;);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions