Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use post categories and tags for all listing post types #39

Merged
merged 4 commits into from
Feb 26, 2021

Conversation

dkoo
Copy link
Contributor

@dkoo dkoo commented Feb 18, 2021

All Submissions:

Changes proposed in this Pull Request:

Deprecates the custom category and tag taxonomies that apply only to listing CPTs, in favor of regular post categories and tags. This will make it much easier to create relationships between listing and other types of site content.

Note: the epic/phase-2 branch is currently a direct clone of master. I'll open all Phase 2 PRs against that branch so we can work on multiple features in parallel, then merge the epic branch into master when Phase 2 is release-ready.

Closes #32.

How to test the changes in this Pull Request:

  1. In WP admin, confirm that the Listings > Categories and Listings > Tags menu items now redirect to the post categories and tags.
  2. Edit a listing of any type. Confirm that when searching for categories and tags, the suggestions are existing post categories and tags. Apply some categories and tags to several listing posts.
  3. Create a query-mode curated list block in any page or post. Add some categories and tags to your query terms. Set the display options to show categories and tags. Confirm that it populates the listing posts you expect, with the matching terms, in both the editor and on the front-end.
  4. Create another curated list block in "specific listings" mode. Set the display options to show categories and tags. Add several listings of various types and confirm that you see the correct categories and tags in both the editor and on the front-end.
  5. View the front-end of an individual listing with categories and tags. Confirm that the categories shown on the singular page display correctly and link to the post archive pages for those categories (for now—in the future, these will need to link to archive pages for the listings, instead).
  6. Confirm that on post category and tag archives, no listings appear. In the future, we will establish listings-specific archives to show the listings posts.

Other information:

  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes, as applicable?
  • Have you successfully ran tests with your changes locally?

@dkoo dkoo added the enhancement New feature or request label Feb 18, 2021
@dkoo dkoo added this to the Phase 2 milestone Feb 18, 2021
@dkoo dkoo self-assigned this Feb 18, 2021
Copy link
Member

@adekbadek adekbadek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. This line should probably be removed, too.
  2. Are we worried about migration? After this change, the existing CPT-specific categories & tags will be lost.

@dkoo
Copy link
Contributor Author

dkoo commented Feb 25, 2021

  1. This line should probably be removed, too.

Removed in aadce2c.

  1. Are we worried about migration? After this change, the existing CPT-specific categories & tags will be lost.

That's a great question. I don't believe any publishers are using Listings widely in production yet. What would you recommend as a migration strategy? Should we check for the assignment of term IDs from the custom taxonomies, and if they exist:

  1. Check for a corresponding post category or tag term with the same name, and if it exists, assign that
  2. If a corresponding post category or tag term doesn't exist with the same name, create and assign it?

@adekbadek
Copy link
Member

I don't believe any publishers are using Listings widely in production yet. What would you recommend as a migration strategy?

We should check that assumption - if it's true, then that's a breaking change and that's that. If not, then on top of that I'd opt for a migration script, since that seems like a mostly DB-wrangling issue.

@dkoo
Copy link
Contributor Author

dkoo commented Feb 25, 2021

We should check that assumption - if it's true, then that's a breaking change and that's that. If not, then on top of that I'd opt for a migration script, since that seems like a mostly DB-wrangling issue.

Thanks for the feedback—I'll make a note for next week's publisher call to ask about Listings and category/tag usage.

Also added #42 to track the migration script if we decide we need it.

@dkoo
Copy link
Contributor Author

dkoo commented Feb 25, 2021

In the meantime, let's proceed with this and we can maybe handle the migration separately if needed.

@dkoo dkoo requested a review from adekbadek February 25, 2021 21:49
Copy link
Member

@adekbadek adekbadek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: to make this bump the major version, a BREAKING CHANGE footer should be added in a commit message.

@dkoo dkoo merged commit f223053 into epic/phase-2 Feb 26, 2021
@dkoo dkoo deleted the feat/post-taxonomies branch February 26, 2021 22:02
@dkoo dkoo mentioned this pull request Jun 4, 2021
6 tasks
matticbot pushed a commit that referenced this pull request Jun 21, 2021
# [2.0.0-alpha.1](v1.2.1...v2.0.0-alpha.1) (2021-06-21)

### Bug Fixes

* activation PHP warning ([#70](#70)) ([29b0a34](29b0a34))
* failing npm ci command ([f509f36](f509f36))
* guard against nonexistent meta object ([#66](#66)) ([c821a09](c821a09))
* missing condition for block appender in list container ([#74](#74)) ([2c49896](2c49896))
* newspack_blocks support slug ([a2bda56](a2bda56))
* remove material packages ([b489015](b489015))
* use synced attributes for ListContainer directly ([#73](#73)) ([f8641a7](f8641a7))
* use value property of selection from AutocompleteWithSuggestions ([#61](#61)) ([c7c4cea](c7c4cea))
* util for checking post type on new posts ([fb61530](fb61530))
* warning about default meta value ([16af17b](16af17b))
* wp_insert_post filter name and theme_mod filter ([5befca7](5befca7))

### Features

* add a new global setting and post option to hide date ([#57](#57)) ([896f68f](896f68f))
* add revisions support for listings ([42d04d2](42d04d2))
* add settings for individual listing type URL slugs ([d78a3f7](d78a3f7)), closes [#41](#41)
* better integration with Newspack Theme features ([823f66a](823f66a))
* child and related listings UI ([#58](#58)) ([06aff81](06aff81))
* convert legacy custom terms to regular post terms ([#67](#67)) ([a2fcf84](a2fcf84))
* CSV importer script ([#51](#51)) ([ffbea00](ffbea00))
* flush permalinks automatically if updating slug option ([988521e](988521e))
* support Newspack Sponsors for listings ([#65](#65)) ([7d2ef64](7d2ef64))
* update cpt icon and block icons ([7b59032](7b59032)), closes [#49](#49)
* update price block to use placeholder and large font size ([#71](#71)) ([710f34c](710f34c))
* use post categories and tags for all listing post types ([#39](#39)) ([f223053](f223053)), closes [#32](#32)

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
@matticbot
Copy link
Contributor

🎉 This PR is included in version 2.0.0-alpha.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

dkoo added a commit that referenced this pull request Jul 6, 2021
* chore: replace AutocompleteTokenfield with Newspack Components version (#40)

* feat: use post categories and tags for all listing post types (#39)

* feat: use post categories and tags for all listing post types

* fix: undo patterns post type changes (for another PR)

* chore: remove unneeded admin page highlighting filter

BREAKING CHANGE: This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.


Fixes #32.

* feat: better integration with Newspack Theme features

* feat: add settings for individual listing type URL slugs

Closes #41.

* fix: wp_insert_post filter name and theme_mod filter

* fix: newspack_blocks support slug

* feat: add revisions support for listings

* chore: update outdated docblock

* refactor: use material icons with Newspack color

* fix: warning about default meta value

* fix: util for checking post type on new posts

* chore: update label of "hide author" setting

* feat: flush permalinks automatically if updating slug option

* feat: update cpt icon and block icons

See #49

* fix: remove material packages

* fix: failing npm ci command

* [WIP] feat: harden post type usage and establish relationships between listings and posts/pages (#43)

* feat: make Business patterns applicable only to places

* feat: create shadow taxonomy for places

* feat: add ability to associate Places with regular posts and pages

* fix: remove default map markers from patterns

* feat: new Price block for Marketplace listings

Also create a proof-of-concept Marketplace listing pattern to test block implementation.

* feat: add meta field with data synced from Price block

* feat: second test pattern

* fix: incorrect conditional for updating shadow terms (whoops)

* feat: abstract shadow tax functions to make it easier to add more

* refactor: simplify setting formattedPrice attribute via useEffect

* chore: fix PHP warning about passing variables

* feat: shadow taxonomies for all CPTs; test automated related listings

* fix: avoid showing post on itself

* fix: incorrect var assignment

* fix: decode HTML entities before rendering currency options

* chore: fix function/class docs

* fix: formatting an empty string results in NaN

* fix: wrong post type being returned by util

* fix: handle all listing post types for shadow taxonomies

* fix: don't show the shadow taxonomy for the post being edited

* feat: add new post button for shadow taxonomies

* chore: instantiate var as empty array, just in case

* fix: updating of terms, and delete orphan terms

* fix: replace Material icon with WordPress icon

* feat: custom UI for parent/child listings instead of WP taxonomy UI

* chore: update function comment

* chore: remove commented-out code

* fix: posts/pages child search fields; only show child UI if published

* fix: logical errors in validation method 🤦

* chore: update function name and comments for clarity

* refactor: use AutocompleteWithSuggestions from newspack-components (#56)

* feat: CSV importer script (#51)

* feat: init CSV importer via CLI command

* refactor: move importer files to subdir

* feat: take field mappings from config file instead of hard-coding them

* feat: add (currently unused) image_ids meta field for future use

* feat: process meta fields and content into block patterns

* fix: mismatch between data types in term handling

* feat: support multiple post types for importing

* docs: add README and sample config

* fix: do not apply content filters to legacy content upon importing

* chore: description

* fix: check if default post type constant is a listing

* feat: update block template; handle social media links

* feat: importer edits for GDG

* feat: add a new global setting and post option to hide date (#57)

* fix: use value property of selection from AutocompleteWithSuggestions (#61)

* fix: use value property of selection from AutocompleteWithSuggestions

* fix: cast listing ID value as an integer

* fix: cast listing IDs as strings to avoid breaking existing listings

* feat: convert legacy custom terms to regular post terms (#67)

* test: init test suite (#60)

* test: init test suite

* chore: fix function comment

* chore: remove redundant lint-php NPM script

* feat: if no view.php, register blocks with default attributes

* fix: activation PHP warning (#70)

* feat: support Newspack Sponsors for listings (#65)

* feat: support Newspack Sponsors

* refactor: response object with author and sponsors

* fix: sponsors for queried listings

* feat: update price block to use placeholder and large font size (#71)

* fix: guard against nonexistent meta object (#66)

* feat: child and related listings UI (#58)

* feat: initial exploration of UI in a modal

* fix: filter out parent post from child listings response

* feat: child and related listings UI

* chore: clear messages when closing modals

* chore: hide shadow terms from menu

* chore: handle errors from fetching suggestions

* chore: more context-sensitive labels for child/parent UI

* chore: update empty message

* refactor: make parent/child UI components more self-contained, reusable

* chore: update newspack-components

* fix: parent/child listings UI bugs

* chore: rename "Child Listings" to "Related Content"

* fix: default listings to one-column-wide.php post template (#77)

* chore: gate legacy taxonomy term deletion behind an environment constant

* fix: memory leaks from legacy term utilities (#81)

* feat: gate custom tax migration behind env flag to avoid expensive ops

* feat: move legacy taxonomy migrator script to a CLI command

* chore: rename CLI command and use ::log instead of ::line

* refactor: move missing/orphan shadow term handling to WP CLI

Co-authored-by: Thomas Guillot <info@thomasguillot.com>
Co-authored-by: Thomas Guillot <thomasguillot@users.noreply.github.com>
matticbot pushed a commit that referenced this pull request Jul 6, 2021
# [2.0.0-alpha.3](v2.0.0-alpha.2...v2.0.0-alpha.3) (2021-07-06)

* v2 release (#85) ([748810d](748810d)), closes [#85](#85) [#40](#40) [#39](#39) [#32](#32) [#41](#41) [#49](#49) [#43](#43) [#56](#56) [#51](#51) [#57](#57) [#61](#61) [#67](#67) [#60](#60) [#70](#70) [#65](#65) [#71](#71) [#66](#66) [#58](#58) [#77](#77) [#81](#81)

### Bug Fixes

* errors and bugs related to WP 5.8 ([#83](#83)) ([90da6c5](90da6c5))

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
matticbot pushed a commit that referenced this pull request Jul 6, 2021
# [2.0.0](v1.2.2...v2.0.0) (2021-07-06)

* v2 release (#85) ([748810d](748810d)), closes [#85](#85) [#40](#40) [#39](#39) [#32](#32) [#41](#41) [#49](#49) [#43](#43) [#56](#56) [#51](#51) [#57](#57) [#61](#61) [#67](#67) [#60](#60) [#70](#70) [#65](#65) [#71](#71) [#66](#66) [#58](#58) [#77](#77) [#81](#81)

### Bug Fixes

* errors and bugs related to WP 5.8 ([#83](#83)) ([90da6c5](90da6c5))

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
dkoo added a commit that referenced this pull request Jul 19, 2021
* chore: replace AutocompleteTokenfield with Newspack Components version (#40)

* feat: use post categories and tags for all listing post types (#39)

* feat: use post categories and tags for all listing post types

* fix: undo patterns post type changes (for another PR)

* chore: remove unneeded admin page highlighting filter

BREAKING CHANGE: This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.


Fixes #32.

* feat: better integration with Newspack Theme features

* feat: add settings for individual listing type URL slugs

Closes #41.

* fix: wp_insert_post filter name and theme_mod filter

* fix: newspack_blocks support slug

* feat: add revisions support for listings

* chore: update outdated docblock

* refactor: use material icons with Newspack color

* fix: warning about default meta value

* fix: util for checking post type on new posts

* chore: update label of "hide author" setting

* feat: flush permalinks automatically if updating slug option

* feat: update cpt icon and block icons

See #49

* fix: remove material packages

* fix: failing npm ci command

* [WIP] feat: harden post type usage and establish relationships between listings and posts/pages (#43)

* feat: make Business patterns applicable only to places

* feat: create shadow taxonomy for places

* feat: add ability to associate Places with regular posts and pages

* fix: remove default map markers from patterns

* feat: new Price block for Marketplace listings

Also create a proof-of-concept Marketplace listing pattern to test block implementation.

* feat: add meta field with data synced from Price block

* feat: second test pattern

* fix: incorrect conditional for updating shadow terms (whoops)

* feat: abstract shadow tax functions to make it easier to add more

* refactor: simplify setting formattedPrice attribute via useEffect

* chore: fix PHP warning about passing variables

* feat: shadow taxonomies for all CPTs; test automated related listings

* fix: avoid showing post on itself

* fix: incorrect var assignment

* fix: decode HTML entities before rendering currency options

* chore: fix function/class docs

* fix: formatting an empty string results in NaN

* fix: wrong post type being returned by util

* fix: handle all listing post types for shadow taxonomies

* fix: don't show the shadow taxonomy for the post being edited

* feat: add new post button for shadow taxonomies

* chore: instantiate var as empty array, just in case

* fix: updating of terms, and delete orphan terms

* fix: replace Material icon with WordPress icon

* feat: custom UI for parent/child listings instead of WP taxonomy UI

* chore: update function comment

* chore: remove commented-out code

* fix: posts/pages child search fields; only show child UI if published

* fix: logical errors in validation method 🤦

* chore: update function name and comments for clarity

* refactor: use AutocompleteWithSuggestions from newspack-components (#56)

* feat: CSV importer script (#51)

* feat: init CSV importer via CLI command

* refactor: move importer files to subdir

* feat: take field mappings from config file instead of hard-coding them

* feat: add (currently unused) image_ids meta field for future use

* feat: process meta fields and content into block patterns

* fix: mismatch between data types in term handling

* feat: support multiple post types for importing

* docs: add README and sample config

* fix: do not apply content filters to legacy content upon importing

* chore: description

* fix: check if default post type constant is a listing

* feat: update block template; handle social media links

* feat: importer edits for GDG

* feat: add a new global setting and post option to hide date (#57)

* fix: use value property of selection from AutocompleteWithSuggestions (#61)

* fix: use value property of selection from AutocompleteWithSuggestions

* fix: cast listing ID value as an integer

* fix: cast listing IDs as strings to avoid breaking existing listings

* feat: convert legacy custom terms to regular post terms (#67)

* test: init test suite (#60)

* test: init test suite

* chore: fix function comment

* chore: remove redundant lint-php NPM script

* feat: if no view.php, register blocks with default attributes

* fix: activation PHP warning (#70)

* feat: support Newspack Sponsors for listings (#65)

* feat: support Newspack Sponsors

* refactor: response object with author and sponsors

* fix: sponsors for queried listings

* feat: update price block to use placeholder and large font size (#71)

* fix: guard against nonexistent meta object (#66)

* feat: child and related listings UI (#58)

* feat: initial exploration of UI in a modal

* fix: filter out parent post from child listings response

* feat: child and related listings UI

* chore: clear messages when closing modals

* chore: hide shadow terms from menu

* chore: handle errors from fetching suggestions

* chore: more context-sensitive labels for child/parent UI

* chore: update empty message

* refactor: make parent/child UI components more self-contained, reusable

* chore: update newspack-components

* fix: parent/child listings UI bugs

* chore: rename "Child Listings" to "Related Content"

* fix: default listings to one-column-wide.php post template (#77)

* chore: gate legacy taxonomy term deletion behind an environment constant

* fix: memory leaks from legacy term utilities (#81)

* feat: gate custom tax migration behind env flag to avoid expensive ops

* feat: move legacy taxonomy migrator script to a CLI command

* chore: rename CLI command and use ::log instead of ::line

* refactor: move missing/orphan shadow term handling to WP CLI

* feat: block patterns for real estate and classifieds

* fix: import pattern styles into editor SCSS

* fix: restore patterns after merge

* refactor: remove placeholder image URLs from patterns

Co-authored-by: Thomas Guillot <info@thomasguillot.com>
Co-authored-by: Thomas Guillot <thomasguillot@users.noreply.github.com>
matticbot pushed a commit that referenced this pull request Jul 19, 2021
# [3.0.0-alpha.1](v2.0.1...v3.0.0-alpha.1) (2021-07-19)

### Bug Fixes

* avoid meta sync update error ([#95](#95)) ([cab16aa](cab16aa))
* do not register post-specific sidebars in widgets page ([#93](#93)) ([7716775](7716775))

### Features

* bump max number of items per list from 20 to 50 ([#97](#97)) ([009deab](009deab))
* more block patterns (real estate, classified ads) ([#84](#84)) ([e76acc3](e76acc3)), closes [#40](#40) [#39](#39) [#32](#32) [#41](#41) [#49](#49) [#43](#43) [#56](#56) [#51](#51) [#57](#57) [#61](#61) [#67](#67) [#60](#60) [#70](#70) [#65](#65) [#71](#71) [#66](#66) [#58](#58) [#77](#77) [#81](#81)

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
matticbot pushed a commit that referenced this pull request Jul 19, 2021
# [3.0.0-alpha.1](v2.0.1...v3.0.0-alpha.1) (2021-07-19)

### Bug Fixes

* avoid meta sync update error ([#95](#95)) ([cab16aa](cab16aa))
* do not register post-specific sidebars in widgets page ([#93](#93)) ([7716775](7716775))

### Features

* bump max number of items per list from 20 to 50 ([#97](#97)) ([009deab](009deab))
* more block patterns (real estate, classified ads) ([#84](#84)) ([a51f5af](a51f5af))
* more block patterns (real estate, classified ads) ([#84](#84)) ([e76acc3](e76acc3)), closes [#40](#40) [#39](#39) [#32](#32) [#41](#41) [#49](#49) [#43](#43) [#56](#56) [#51](#51) [#57](#57) [#61](#61) [#67](#67) [#60](#60) [#70](#70) [#65](#65) [#71](#71) [#66](#66) [#58](#58) [#77](#77) [#81](#81)

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
matticbot pushed a commit that referenced this pull request Jul 19, 2021
# 1.0.0-alpha.1 (2021-07-19)

### Bug Fixes

* avoid meta sync update error ([#95](#95)) ([cab16aa](cab16aa))
* do not register post-specific sidebars in widgets page ([#93](#93)) ([7716775](7716775))
* editor errors with reusable blocks ([#89](#89)) ([fdc46d3](fdc46d3))
* errors and bugs related to WP 5.8 ([#83](#83)) ([90da6c5](90da6c5))
* force alpha rebuild ([acc2075](acc2075))
* minor bug fixes ([#21](#21)) ([5f90bc7](5f90bc7))
* missing condition for block appender in list container ([#74](#74)) ([2c49896](2c49896))
* syncing attributes from curated list block to inner blocks ([#64](#64)) ([cdbc0bb](cdbc0bb))
* use synced attributes for ListContainer directly ([#73](#73)) ([f8641a7](f8641a7))

### Features

* add block patterns ([#23](#23)) ([a273a40](a273a40))
* bump max number of items per list from 20 to 50 ([#97](#97)) ([009deab](009deab))
* initial post type and block setup ([#1](#1)) ([47dc0c1](47dc0c1))
* listing taxonomies and query mode ([#6](#6)) ([528e1e5](528e1e5))
* more block patterns (real estate, classified ads) ([#84](#84)) ([a51f5af](a51f5af))
* new Curated List block, block pattern, and map functionality ([#3](#3)) ([9be6e7e](9be6e7e))
* remove borders and padding in editor to match front-end styles ([#14](#14)) ([6c47a17](6c47a17))

* v2 release (#85) ([748810d](748810d)), closes [#85](#85) [#40](#40) [#39](#39) [#32](#32) [#41](#41) [#49](#49) [#43](#43) [#56](#56) [#51](#51) [#57](#57) [#61](#61) [#67](#67) [#60](#60) [#70](#70) [#65](#65) [#71](#71) [#66](#66) [#58](#58) [#77](#77) [#81](#81)

### BREAKING CHANGES

* This feature will deprecate existing custom taxonomies, so any existing terms for those taxonomies will be lost.

To fix, we can convert terms from the deprecated taxonomies to standard post categories/tags via a migration script.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants