• Hi, I’d like to either remove or disable some category checkboxes and I’m not sure of the best way to do this with gutenberg REST API (new to the REST api). These are the options I’ve considered so far:

    1. PHP: rest_prepare_category filter, however the json endpoint for categories used by gutenberg seems hardcoded with context = view and I only want this with context = edit

    2. Js: I know I can use wp.data.select(‘core’).getEntityRecords(‘taxonomy’, ‘category’, {exclude: [16,17]} ) to get the data I want but have no idea how to pass this to the HierarchicalTermSelector or possibly use in the wp.hooks editor.PostTaxonomyType filter?

    I’m struggling with the documentation on this- any advice would be very gratefully recieved!

    • This topic was modified 2 years, 10 months ago by annettepixie.
Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Support David Smith

    (@get_dave)

    Hi @annettepixie

    Let me see if I can source some input for you on this. I know someone who has worked on these components who might have some insight.

    Many thanks

    Thread Starter annettepixie

    (@annettepixie)

    Thank you @get_dave

    Thread Starter annettepixie

    (@annettepixie)

    Hi @get_dave , I was wandering if you had anything more on this.

    I have a sub-optimal solution that 1) dispenses with radio buttons (not great UI) and relies on validation checks to restrict selction to just one category and 2) uses a mutation observer to disable parent categories when the categories are loaded.

    Re the mutation object, I know I’m doubling up here but I can’t find in the docs how to listen for the categories – wp.data.select( ‘core/editor’ ).hasFinishedResolution( ‘categories’ ) and wp.data.select( ‘core/editor’ ).hasFinishedResolution( ‘HierarchicalTermSelector’ ) return false in browser dev tools – not sure if thats what I should be using anyway?

    Plugin Support David Smith

    (@get_dave)

    Hi @annettepixie

    Apologies for lack of response.

    I think perhaps what you might like to explore is the rest_{$this->taxonomy}_query filter which “Filters get_terms() arguments when querying terms via the REST API”.

    https://core.trac.www.ads-software.com/browser/tags/5.9/src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php#L265

    You could modify the query to use the exclude parameter to remove the various categories you don’t wish to retrieve.

    I haven’t tested this but it should be a good start for removing some of the category checkboxes.

    Thread Starter annettepixie

    (@annettepixie)

    Thanks for the reply @get_dave

    I have tried that filter but the categories I want to disable are parent categories and the exclude parameter also excludes all child categories of an excluded parent. I tried the include parameter and that also didn’t solve the issue – I presume the hierachicaltermselector needs a parent cat. I also considered setting the hierarchical parameter to false but then realised this would create issues with the ‘add new category’ functionality. As this issue is incidental for the project I’m working on I’ll have to live with the sub optimal ui and put some time aside later to get my head round react as is sounds like the solution is client side for this use case.

    The one thing I’m left wandering about is if there’s native wordpress/react functionality I can use instead of the mutation observer I’ve created to watch categories – on initial render and any subsequent re renders when the panel is closed and reopened?

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘How to filter Categories shown in Gutenberg?’ is closed to new replies.