Skip to content

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

Open

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;);

Activity

  1. WillPresley commented on Mar 4, 2022

    @WillPresley

    Just coming in to say thanks for this, and also @ykyu you have an extra semicolon as the 3rd-to-last character.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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